jquery插件实现图片对比

本文实例为大家分享了jquery插件实现图片对比的具体代码,供大家参考,具体内容如下

很常见的一个效果,做起来不难

效果如下

代码部分

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>做图片对比</title>
  <script src="js/jquery-3.4.1.min.js"></script>
  <style>
   *{
    margin: 0px;
    padding: 0px;
    user-select: none;
   }
   .div{
    border: 1px solid lightgray;
    width: 400px;
    height: 200px;
    margin: 10px;
    float: left;
    position: relative;
   }
   .img1{
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 50%;
   }
   .img2{
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    right: 0;
   }
   .img1,.img2{
    background-position: center center;
    background-size: 400px 200px;
    background-repeat: no-repeat;
   }
   .img1{
    background-position-x: 0;
   }
   .img2{
    background-position-x: 100%;
    filter: invert(100%);
   }
   .bar{
    position: absolute;
    top: 0;
    bottom: 0;
    right:-4px;
    width: 8px;
    background-color: gray;
    cursor: ew-resize;
    opacity: 0.2;
   }
   .stop{
    pointer-events: none;
   }
  </style>
 </head>
 <body>
  <div class="div">
   <div class="img1" style="background-image: url(img/1.jpg);">
    <div class="bar" data-flag="0"></div>
   </div>
   <div class="img2" style="background-image: url(img/1.jpg);"></div>
  </div>
  <div class="div">
   <div class="img1" style="background-image: url(img/2.jpg);">
    <div class="bar" data-flag="0"></div>
   </div>
   <div class="img2" style="background-image: url(img/2.jpg);"></div>
  </div>
 </body>
</html>
<script>
 $(document).ready(function(){
  $(".bar").mousedown(function(){
   $(this).parent().addClass("stop");
   $(this).parent().next().addClass("stop");
   $(this).attr("data-flag","1")
  })
  $(".div").mousemove(function(e){
   var temp = $(this).find('.bar').attr("data-flag");
   if(temp=="1"){
    var w = $(this).width();
    var x = e.offsetX;
    var p = parseFloat((x/w).toFixed(2))*100;
    $(this).children(".img1").css('width',p+'%');
    $(this).children(".img2").css('left',p+'%');
   }
  })
  $(document).mouseup(function(){
   $(".img1,.img2").removeClass("stop");
   $(".bar").attr("data-flag","0")
  })
 })
</script>

思路解释

感觉很简单,就是俩图作为背景图片然后控制他的布局位置,控制容器的宽高就行了
需要做适应性优化的还有背景图大小的控制,当然父容器不会变化就不会出问题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】

    本文实例讲述了jQuery图片前后对比插件beforeAfter用法.分享给大家供大家参考,具体如下: 今天分享一款 jquery 插件--图片前后对比(beforeAfter),效果如下: 使用方法: <!DOCTYPE HTML> <html lang="en"> <head> <meta charset="utf-8"/> <title>图片前后对比</title> </head&g

  • jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法

    本文实例讲述了jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法.分享给大家供大家参考.具体如下: 左右拖拽切换对比图片效果,运行效果后,图片中间有个拖动条,拖动左右滑动,可看到图片不一样的效果,女模特的脸变嫩了,呵呵,其实是用了两张背景图片实现的,这就需要jquery.beforeafter.js插件了,拖动时候的小图标不见了,路径可以在jquery.beforeafter.js中设置,不多说了. 运行效果截图如下: 在线演示地址如下: http://d

  • jquery插件实现图片对比

    本文实例为大家分享了jquery插件实现图片对比的具体代码,供大家参考,具体内容如下 很常见的一个效果,做起来不难 效果如下 代码部分 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>做图片对比</title> <script src="js/jquery-3.4.1.min.js"></script>

  • jquery插件实现图片悬浮

    本文实例为大家分享了jquery插件实现图片悬浮的具体代码,供大家参考,具体内容如下 很常见的一个效果,就是点击之后图片悬浮出来展示 效果如下 代码部分 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>做图片悬浮</title> <script src="js/jquery-3.4.1.min.js"></

  • 使用jquery插件实现图片延迟加载技术详细说明

    这里推荐使用jquery图片延迟加载插件jquery.lazyload实现图片延迟加载提高网站打开速度下载地址:http://www.appelsiini.net/download/jquery.lazyload.js 一.快速使用篇 1.导入JS插件 复制代码 代码如下: <script src="js\jquery.js" type="text/javascript"></script> <script src="js\j

  • jQuery插件实现图片轮播效果

    使用插件实现图片轮播效果: 通过设置传入的参数autoScroll,numControl和arrowControl的值可以显示不同的效果 图片轮播效果一:设置autoScroll=true,numControl=false,arrowControl=false,图片自动轮播,当鼠标进入时停止轮播,当鼠标移出时继续轮播: 图片轮播效果二:设置autoScroll=true,numControl=ture,arrowControl=false,图片自动轮播,同时当鼠标指向导航数字时显示相应的图片:

  • jquery 插件实现图片延迟加载效果代码

    减少了页面加载的时间了,也减轻了服务器的压力,看了一下javascript源码,里面写的了lazyload,我就百度了一下,找到了一个jquery的实现这种效果的插件:jquery.lazyload,一个很不错的插件. 比如你打开一个比较大或者长的网页,那么Lazy load能够实现先加载您所看到区域的图片,等你滚动到哪里,就加载那里的图片. 如果你是图片网站,而且一个页面要加载很多图片,这个插件是个很不错的选择. 如何使用,引用如下js: 查看源代码打印帮助 复制代码 代码如下: <scrip

  • jquery插件制作 图片走廊 gallery

    首先创建jquery.gallery.js的插件文件,构建程序骨架. 复制代码 代码如下: (function ($) { $.fn.gallery = function () { return this.each(function () { var self = $(this); self.click(function () { }); }); } })(jQuery); 创建html文件,使用我们创建的插件. 复制代码 代码如下: <!DOCTYPE html> <html xmln

  • jQuery插件实现图片轮播特效

    好了废话不多说了,先看看效果图. HTML部分: <div class="slider"> <div class="ul-box"> <ul> <li><a href="javascript:;"><img src="img/1.jpg"/></a></li> <li><a href="javascrip

  • jquery插件珍藏(图片局部放大/信息提示框)

    1.图片局部放大 jQZoom Evolution (演示 | 下载) 2.信息提示框

  • 完美兼容各大浏览器的jQuery插件实现图片切换特效

    文件里面的功能注释也写得非常详细(详见zoeDylan.ImgChange-1.0.1.js文件),对网友们的学习是很有帮助的,虽然样式不太好看,大家可以自己写,好好利用哦... JS代码部分: 复制代码 代码如下: (function ($) {     var//申明全局变量         _eleTemp,//缓存变量         _eleThis = $(this),//当前元素         _eleImg = $('.zd-imgChange-img'),//图片组元素   

  • 使用JQuery FancyBox插件实现图片展示特效

    FancyBox是一个用于显示图像,HTML内容和多媒体的lightbox工具. jquery插件之fancybox弹出框特效,与广为人之的lightbox插件比较类拟,可以展示单张图片,也可展示一组图片,它还可以展示自定义的内容与ajax载入外部文件的内容等,功能也是很方便与实用的. Demo effect(image gallery): Sample code: <link href="~/Content/jquery.fancybox.css" rel="styl

随机推荐