zoukankan      html  css  js  c++  java
  • javascript

    最近写了一个图片展示的页面,在弹出层中显示大图,在大图的左边和右边点击时可以翻页。

    将鼠标在大图上移动时,移动到左边显示一个向左的箭头,移动到右边时显示一个向右的箭头。

    当第一次显示大图时,如果鼠标位置在大图上,初始化显示一个向左或向右的箭头。

    关于鼠标在大图上移动,动态的更新鼠标指针,这个没什么问题,使用 img.onmousemove = function(){img.className=...}就可以搞定。

    我遇到的问题是在IE浏览器上第一次显示大图的时候,初始化鼠标指针形状,下面是一个样式表(css):

    1
    2
    .cursor_left {cursorurl(/images/left.cur), pointer}
    .cursor_right {cursorurl(/images/right.cur), pointer}

    我在 img.onload 事件中来初始化鼠标指针形状, 直接设置 img.className = "...", 在chrome,firefox浏览器上能正常的显示自定义的鼠标指针形状。但在 ie(6,8)浏览器上无法显示出箭头。

    经过几个小时的不断测试,最后发现有ie上,使用 img.style.cursor = "url(....)"; 有效果。

    好吧,javascript的代码,针对ie浏览器:

    1
    2
    3
    4
    5
    img.style.cursor = "url(/images/left.cur)";
    img.className = "cursor_left";
     
     //如果同时指定的了 img.style.cursor 和 img.className, img.style.cursor 的优化级高于 img.className, 所以这里必须加上这么一句
    img.style.cursor = "";

    这里需要注意,最后加上一句: img.style.cursor = ""; 不然,在后继的 img.onmousemove 事件中设置 img.className 会无效。我猜测是优先级问题。

    2014-05-30

  • 相关阅读:
    如何用js解网页中间内容的高度自适应
    常见Js获取高宽度的方法
    CSS3 转换 transform
    CSS3 过渡 transition
    CSS3 动画 animation
    当页面内容不够的时候,如何让footer一直固定底部显示
    如何用js判断是否为手机访问
    用css解决table文字溢出控制td显示字数
    jquery实现全选和反选功能
    JS中filter的用法
  • 原文地址:https://www.cnblogs.com/personnel/p/4584960.html
Copyright © 2011-2022 走看看