zoukankan      html  css  js  c++  java
  • 图片缩放——利用layui的滑块

    @layui官网文档@参考博客

    参考博客中能实现,但是效果差强人意,在前辈的基础上进行了改造,并支持了动态多图列表

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
    <%
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/";
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    
    <link rel="stylesheet" href="layui/css/layui.css">
    
    <%--展示图片列表  --%>
    <c:forEach items="${imgList }" var="img" varStatus="index">
    	<fieldset class="layui-elem-field">
    	  <legend><button>删除</button></legend>
    	  <div class="layui-field-box">
    	  	<div id="slideys${index.index }" class="demo-slider"></div>
    	  	<%--用于展示。此处的src请替换成个人实际使用的src --%>
    	  	<img id="dximg${index.index }" style="min- 100px; min-height: 20px" src="<%=basePath %>imagePath/${img.imgName}" alt="图片缺失"/>
    	  	<%--用于缩放参考 --%>
    	  	<img id="dximgHidden${index.index }" src="<%=basePath %>imagePath/${img.imgName}" style="display: none;"/>
    	  </div>
    	</fieldset>
    </c:forEach>
    
    <c:if test="${imgList==null or fn:length(imgList) ==0}">
    	<fieldset class="layui-elem-field">
    	  <legend>无图片</legend>
    	  <div class="layui-field-box">
    	  	
    	  </div>
    	</fieldset>
    </c:if>
    <script src="layui/layui.js"></script>
    <%--此处必须用循环,否则slider将不能正常使用。比如for循环出来的,k值总是比最大的还大1 --%>
    <c:forEach items="${imgList }" var="img" varStatus="index">
    <script type="text/javascript">
    layui.use(['element','slider','jquery','layer'], function(data){
    	var $ = jQuery = layui.$, element = layui.element ,slider = layui.slider,layer=layui.layer;
    	var k=${index.index};//循环的索引,辅助匹配对应的元素
    	 slider.render({
    			 elem: '#slideys'+k
    			 ,value: 0 //初始值
    			 ,theme: '#1E9FFF'
    			 ,step: 1 //步长
    			 ,min: -10 //最小值
    			 ,max: 10 //最大值
    			 ,showstep: true //显示间隔点
    			 ,tips:false
    			 ,change: function(value){
    			      console.log(value);
    			      var imgHidden =  $("#dximgHidden"+k);  //隐藏的图片ID,辅助用
    			      var img =  $("#dximg"+k);  //图片ID
    			      var ysw = parseInt(imgHidden.css('width'));   //记录图片原始宽度
    			      var ysh = parseInt(imgHidden.css('height'));   //记录图片原始高度
    			      var pjw = ysw/10;
    	                     var pjh = ysh/10;
    	                     if(img!=null){
    		                var w = Math.round(ysw+(pjw*value));
    		                var h = Math.round(ysh+(pjh*value));
    		                $(img).css("width", w );  
    		                $(img).css("height", h ); 
    	          	       }
    	      	     }
    		});
    });
    </script> 
    </c:forEach>
    

      效果图如下

  • 相关阅读:
    GO学习之 为什么选择GO
    Flask学习之 Jinja2模板引擎
    排序算法之归并排序的python实现
    排序算法之快速排序的python实现
    排序算法之希尔排序的python实现
    排序算法之插入排序的python实现
    排序算法之选择排序的python实现
    Android 中正则表达式工具类
    java之从字符串比较到==和equals方法区别
    Android Studio酷炫插件(一)——自动化快速实现Parcelable接口序列化
  • 原文地址:https://www.cnblogs.com/yanan7890/p/10880981.html
Copyright © 2011-2022 走看看