zoukankan      html  css  js  c++  java
  • div+css+jQuery图片横向滚动代码(带左右点击按钮)

    首先感谢Blue老师的javascript教程,给了我很多的启发,这是我在看完10 - 定时器的使用 - 2这节视频后,自己试着用jQuery重新改写了一下代码,感觉至少比百度搜出来的那一坨靠谱多了,上代码:

    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src = "jquery_v1.7.2.js"></script>
        <script type="text/javascript">
    $(document).ready(function (){
    /*=============
    Author:Gino
    Blog:http://www.cnblogs.com/ginowang42
    Thanks:@Blue--http://www.zhinengshe.com/video.html#1
    Name:jQuery插件图片左右无缝滚动
    Arguments:
        @leftBtn:向左滚动按钮DOM引用
        @rightBtn:向右滚动按钮DOM引用
        @speed:滚动速度(每次滚动像素数)
    CSS keyed Attribute:
        #noSeamScroll{position:relative;overflow:hidden;}
        #noSeamScroll ul{position:absolute;}    
        #noSeamScroll ul li {float:left;}    
    ===============*/
        $.fn.extend({noSeamScroll:function (leftBtn,rightBtn,speed){
            var timeFlag = speed = speed || 4;;
            var timer = null;
            var _this = this;//把this重新保存在一个私有变量里面,以防止setInterval误把this指向了window
            this.oUl = $("ul",this);
            this.oUl.html(this.oUl.html() + this.oUl.html());//把li复制一份
            this.oLis = $("ul li",this);//之后再变量保存li的全部节点
            this.oUl.width(this.oLis.eq(0).outerWidth(true)*this.oLis.length + "px");
            var fnMove = function (){
                $("ul",_this).css("left",function (){
                    if ($(this).position().left > 0){//这里的this指的是$("ul",element)
                        return -$(this).outerWidth(true)/2 + "px";
                    }
                    if ($(this).position().left < -$(this).outerWidth(true)/2 ){
                        return "0px";
                    }
                    return $(this).position().left  + timeFlag + "px";
                })
            }
        
            timer = setInterval(fnMove,30);
            
            this.mouseover(function () {clearInterval(timer);});
            this.mouseout(function () {timer = setInterval(fnMove,30)});
            
            leftBtn.click(function (){
                clearInterval(timer);
                timeFlag = -speed;
                timer = setInterval(fnMove,30);
            })
            rightBtn.click(function (){
                clearInterval(timer);
                timeFlag = speed;
                timer = setInterval(fnMove,30);
            })
    
        }
        });
    
        //test
        $("#noSeamScroll").noSeamScroll($("#leftArr"),$("#rightArr"),2);
        
        
    })
    
        </script>
        <style type="text/css">
        *{margin:0;padding:0;}
        #noSeamScroll{width:752px;height:108px;margin:20px auto;position:relative;overflow:hidden;}
        #noSeamScroll ul{position:absolute;list-style:none;}    
        #noSeamScroll ul li {float:left;width:178px;height:108px;margin-right:10px;}
        
        
        </style>
    </head>
    <body>
    <a href="javascript:;" id="leftArr">向左移动</a>
    <a href="javascript:;" id="rightArr">向右移动</a>
        <div id = "noSeamScroll">
            <ul>
                <li><img src="images/1.jpg" alt="" /></li>
                <li><img src="images/2.jpg" alt="" /></li>
                <li><img src="images/3.jpg" alt="" /></li>
                <li><img src="images/4.jpg" alt="" /></li>
                
            </ul>
        </div>
    </body>
    </html>
  • 相关阅读:
    UIAutomator环境搭建
    Appium环境搭建
    Java单元测试 Junit TestNG之介绍
    IDEA操作jdbc总结
    tomcat启动失败的解决办法
    Java 图书管理项目
    某某服-EDR终端任意用户登录 0day
    深X服 EDR终端检测系统RCE漏洞复现
    通达OA任意文件上传+文件包含RCE漏洞复现(附自写EXP)
    Joomla-3.4.6远程代码执行漏洞复现
  • 原文地址:https://www.cnblogs.com/ginowang42/p/3149669.html
Copyright © 2011-2022 走看看