js图片向右一张张滚动效果实例代码


Posted in Javascript onNovember 23, 2013

先来张效果图

js图片向右一张张滚动效果实例代码

样式

        #div_left{float:left;width:60px;height:86px;}
        #starScroll{width:843px;height:188px;margin-left:15px;margin-right:15px;padding-top:9px;overflow:hidden;border:1px solid red;float:left;}
        #starScroll #contentScroll{width:500%}
        #starScroll #ScrollOne{float:left;}
        #starScroll #ScrollOne a{float:left;width:204px;height:188px;margin-right:9px;float:left;display:inline;}
        #starScroll #ScrollOne img{width:204px;height:188px;border:0px;}
        #starScroll #ScrollTwo{float:left;}
        #starScroll #ScrollTwo a{float:left;width:204px;height:188px;margin-right:9px;float:left;display:inline;}
        #starScroll #ScrollTwo img{width:204px;height:188px;border:0px;}
        #div_right{float:left;width:60px;height:86px;}
        .arrow{background:url(images/arrow.png) no-repeat;cursor:pointer;height:86px;width:60px;cursor:pointer;display:block;margin-top:50px;}
        .prev{background-position:left top;}
        .prev:hover{background-position:left bottom;}
        .next{background-position:right top;}
        .next:hover{background-position:right bottom;}

html代码

<div>
    <div id="div_left">
        <span id="btn_left" class="arrow prev"></span>
    </div>
    <div id="starScroll">
        <div id="contentScroll">
            <div id="ScrollOne">
                <a href="#" title="1"><img src="images/1.jpg" /></a>
                <a href="#" title="2"><img src="images/2.jpg" /></a>
                <a href="#" title="3"><img src="images/3.jpg" /></a>
                <a href="#" title="4"><img src="images/4.jpg" /></a>
                <a href="#" title="5"><img src="images/5.jpg" /></a>
                <a href="#" title="6"><img src="images/6.jpg" /></a>
                <a href="#" title="7"><img src="images/7.jpg" /></a>
                <a href="#" title="8"><img src="images/8.jpg" /></a>
            </div>
            <div id="ScrollTwo"></div>
        </div>
    </div>
    <div id="div_right">
        <span id="btn_right" class="arrow next"></span>
    </div>
</div>

JS代码

    <script type="text/javascript">
var Scroll=(function(){
    return function(){
        var starScroll = document.getElementById("starScroll"),
            ScrollOne = document.getElementById("ScrollOne"),
            aCollection = ScrollOne.getElementsByTagName("a"),
            aLength = aCollection.length,
            ScrollTwo = document.getElementById("ScrollTwo"),
            btn_left = document.getElementById("btn_left"),
            btn_right = document.getElementById("btn_right");
        var Width = 204,Current = 1,Rate = 7,TimeTimeout=1000,TimeInterval=10,MarginRight=9;
        var SInterval=null,STimeout=null;
        var flag=true;
        function ScrollLeft(){
            var CountWidth = Current*Width+Current*MarginRight,
                SLeftPara=starScroll.scrollLeft;
            if(ScrollTwo.offsetWidth-SLeftPara==0){
                starScroll.scrollLeft=0;
                Current=0;
            }
            if(CountWidth-SLeftPara==0){
                Forward();
            }
            else{
                var v = Math.round((CountWidth-SLeftPara)/Rate);
                v = v<1 ? 1 : v;
                SetScrollLeft(SLeftPara+v);
            }
        }
        function SetScrollLeft(scrollleft){
            starScroll.scrollLeft=scrollleft;
        }
        function Init(){
            flag=false;
            SInterval=setInterval(ScrollLeft,TimeInterval);
        }
        function Forward(){
            clearInterval(SInterval);
            Current++;
            flag=true;
            STimeout = setTimeout(Init,TimeTimeout);
        }
        btn_right.onclick=function(){
            if(flag){
                clearTimeout(STimeout);
                Init();
            }
        }
        function ScrollRight(){
            var CountWidth = Current*Width+Current*MarginRight,
                SLeftPara = starScroll.scrollLeft;
            if(CountWidth-SLeftPara==0){
                Forward();
            }
            else{
                var v = Math.round((CountWidth-SLeftPara)/Rate);
                v = v>-1?-1:v;
                SetScrollLeft(SLeftPara+v);
            }
        }
        btn_left.onclick=function(){
            if(!flag){
                return;
            }
            flag=false;
            clearTimeout(STimeout);
            if(Current==1){
                SetScrollLeft(ScrollTwo.offsetWidth);
                Current=aLength+1;
            }
            Current-=2;
            SInterval = setInterval(ScrollRight,TimeInterval);
        }
        if(aLength>0){
            starScroll.scrollLeft=0;
            ScrollTwo.innerHTML = ScrollOne.innerHTML;
            STimeout = setTimeout(Init,TimeTimeout);
        }
    }
})();
Scroll();
    </script>
Javascript 相关文章推荐
javascript setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
浅谈Javascript鼠标和滚轮事件
Jun 27 Javascript
JS代码同步文本框内容的实例方法
Jul 12 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
Feb 15 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
Nov 07 Javascript
vue插件实现v-model功能
Sep 10 Javascript
Cocos2d实现刮刮卡效果
Dec 20 Javascript
JS匿名函数内部this指向问题详析
May 10 Javascript
浅入深出Vue之自动化路由
Aug 06 Javascript
Node.js API详解之 module模块用法实例分析
May 13 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
Jul 20 Javascript
小程序自定义圆形进度条
Nov 17 Javascript
JavaScript实现简单的时钟实例代码
Nov 23 #Javascript
JS控制日期显示的小例子
Nov 23 #Javascript
Jquery 动态循环输出表格具体方法
Nov 23 #Javascript
基于jquery异步传输json数据格式实例代码
Nov 23 #Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
Nov 23 #Javascript
javascript阻止浏览器后退事件防止误操作清空表单
Nov 22 #Javascript
js获取电脑分辨率的思路及操作
Nov 22 #Javascript
You might like
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
python笔记(2)
2012/10/24 Python
python实现的解析crontab配置文件代码
2014/06/30 Python
python通过加号运算符操作列表的方法
2015/07/28 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
简历中自我评价分享
2013/10/09 职场文书
毕业生物理教师求职信
2013/10/17 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
银行求职信范文
2019/05/13 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
浅谈JavaScript作用域
2021/12/06 Javascript
python playwrigh框架入门安装使用
2022/07/23 Python