IE 上下滚动展示模仿Marquee机制

代码如下:

var STARTINGOPACITY = 40;    //设置不透明度
var STARTINP = 70;//设置透明度
var SCROLLSTUP = 1;//滚动速度,1为一个像素
var SCROLLSYY = 100;//滚动时间请求
var reqflg = false;

// handles manual scrolling of the content //
function scrollContent(pardiv,id,sub) {
var div = document.getElementById("textslider");
var divsub = document.getElementById(sub);
var divpar = document.getElementById(pardiv);

clearInterval(div.timer);
div.style.opacity = STARTINGOPACITY * .01;
div.style.filter = 'alpha(opacity=' + STARTINP + ')';
var div2 = document.getElementById("textslider2");
if(div2!=null){
    clearInterval(div2.timer);
div2.style.opacity = STARTINGOPACITY * .01;
div2.style.filter = 'alpha(opacity=' + STARTINP + ')';
}

var tem = div.innerHTML;//第一个页
tem1 = "<div class=\"slidercontent1\" id=\"textslider2\">"+tem+"</div>";//第二个页

var objheight = divpar.offsetHeight;
var divheight = div.offsetHeight;

//判断是否需要滚屏,如果不需要就不滚动
if(objheight<divheight){
    if(!reqflg){
        divpar.innerHTML += tem1;
        reqflg = true;
        div = document.getElementById("textslider");
        div2 = document.getElementById("textslider2");
        //设置高度
        div2.style.top = divheight-1+ "px";
    }
    div.timer = setTimeout( function() { scrollAnimate(div,div2) }, SCROLLSYY);
}
}
function scrollAnimate(div,div2) {
//获取两个子div的top值
var divtop = div.offsetTop;
//alert(divtop);
if(divtop==0){
    div.style.top = "0px";
divtop = 0;
}
var div2top = div2.offsetTop;
if(div2top==0){
    div2top = 0;
div2.style.top = "0px";
}
if(divtop<div2top){
    //1号在上面 2号在下面
div.style.top = divtop - SCROLLSTUP+'px';
    div2.style.top = div2top - SCROLLSTUP+'px';
    //alert("div.style.top:"+div.style.top+"---div2.style.top:"+div2.style.top+":height:"+div.offsetHeight);
    //判断是否交换位置,如果高度位置等于top那么交换
    if(div.offsetTop==-div.offsetHeight){
     //将top设置为最下面
div.style.top = div2.offsetHeight;
    }
}else{
    //2号在上面 1号在下面
    div2.style.top = div2top - SCROLLSTUP+'px';
    div.style.top = divtop - SCROLLSTUP+'px';
    //判断是否交换位置,如果高度位置等于top那么交换
    if(div2.offsetTop==-div2.offsetHeight){
     //将top设置为最下面
div2.style.top = div.offsetHeight;
    }
}
div.timer = setTimeout( function() { scrollAnimate(div,div2) }, SCROLLSYY);
}

// cancel the scrolling on mouseout //
function cancelScroll(pardiv,id,sub) {
var div = document.getElementById(id);
div.style.opacity = 1;
div.style.filter = 'alpha(opacity=100)';
clearTimeout(div.timer);

var div2 = document.getElementById("textslider2");
if(div2!=null){
     div2.style.opacity = 1;
     div2.style.filter = 'alpha(opacity=100)';
     clearTimeout(div2.timer);
}
}

代码打包下载

(0)

相关推荐

  • IE 上下滚动展示模仿Marquee机制

    复制代码 代码如下: var STARTINGOPACITY = 40;    //设置不透明度 var STARTINP = 70;//设置透明度 var SCROLLSTUP = 1;//滚动速度,1为一个像素 var SCROLLSYY = 100;//滚动时间请求 var reqflg = false; // handles manual scrolling of the content // function scrollContent(pardiv,id,sub) { var div

  • jQuery实现列表自动滚动循环滚动展示新闻

    需要在页面中一个小的区域循环滚动展示新闻(公告.活动.图片等等),并且,鼠标悬停时停止滚动并提示,离开后,继续滚动. 效果图: 上干货 html: 复制代码 代码如下: <div id="news"> <ul> <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofol

  • jQuery循环滚动展示代码 可应用到文字和图片上

    看见有的同学用 Adam Cai 的代码,感觉稍显复杂而且不够 jQuery.我用只依靠 jQuery 入门的思路写了一版,代码更少使用也更简单. 在线演示: http://demo.jb51.net/js/2012/jquery_xhpic/[JavaScript]代码 复制代码 代码如下: $(document).ready(function(){ $("#sItem li:not(:first)").css("display","none"

  • div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox

    div+css+javascript 实现无缝滚动,marquee无缝滚动,无缝滚动,兼容firefox 用marquee实现首尾相连循环滚动效果(仅IE): 复制代码 代码如下: <marquee behavior="scroll" contenteditable="true" onstart="this.firstChild.innerHTML+=this.firstChild.innerHTML;" scrollamount=&quo

  • 原生javascript实现无间缝滚动示例

    目前支持的是竖向与横向滚动 http://lgyweb.com/marScroll/ 现在分析下无间缝实现的基本思路(竖向例子): HTML结构: 复制代码 代码如下: <div id="marScroll"> <ul> <li>01</li> <li>02</li> <li>03</li> <li>04</li> <li>05</li> &l

  • Android嵌套滚动和协调滚动的多种实现方法

    目录 Android的嵌套滚动的几种实现方式 一.嵌套滚动 NestedScrollingParent/Child 二.嵌套滚动 NestedScrollView 三.嵌套滚动-自定义布局 总结 Android的嵌套滚动的几种实现方式 很多 Android 开发者虽然做了几年的开发,但是可能还是对滚动的几种方式不是很了解,本系列也不会涉及到底层滚动原理,只是探讨一下 Android 布局滚动的几种方式. 什么叫嵌套滚动?什么叫协调滚动? 只要是涉及到滚动那必然父容器和子容器,按照原理来说子容器先

  • jQuery左右滚动支持图片放大缩略图图片轮播代码分享

    本文实例讲述了jQuery左右滚动支持图片放大缩略图图片轮播效果.分享给大家供大家参考.具体如下: 这是一款基于jQuery实现的左右滚动支持图片放大缩略图图片轮播效果,常用的jQuery图片左右轮播效果,同时支持底部缩略图左右滚动展示,点击大图片后支持放大效果. 运行效果图:                                     -------------------查看效果------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大

  • jquery 页眉单行信息滚动显示实现思路及代码

    以下是控制滚动的样式,将滚动的内容查询出来,放在一个div 或者别的容器里面,我这里使用的是<dt> <style> #newCglist{width:300px;height:14px;line-height:14px;overflow:hidden} #newCglist li{height:14px;padding-left:10px;} </style> 以下是滚动内容展示的容器 <dt class="positionrel" id=&

  • jQuery实现列表自动循环滚动鼠标悬停时停止滚动

    需要在页面中一个小的区域循环滚动展示新闻(公告.活动.图片等等),并且,鼠标悬停时停止滚动并提示,离开后,继续滚动. 效果图:  上干货 html: 复制代码 代码如下: <div id="news"> <ul> <li><a href="#" title="aaaaaaaaaaaaaaa">aaaaaaaaaaaaaaa</a></li> <li><a h

  • Javascript继承机制详解

    学完了Javascript类和对象的创建之后,现在总结一下Javascript继承机制的实现.Javascript并不像Java那样对继承机制有严格明确的定义,它的实现方式正如它的变量的使用方式那样也是十分宽松的,你可以设计自己的方法"模仿"继承机制的实现.有以下几种方法: 1.对象冒充 <script type="text/javascript"> function classA(str){ this.str=str; this.printstr=fu

随机推荐