CSS   发布时间:2022-04-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了css – 如何在Chrome中制作循环Div?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个div在图像缩放时起到一个镜头的作用.但问题是我想要通知.我正在用这个
-webkit-border-radius:999px;-moz-border-radius:999px;border-radius:999px;

问题是它使得div圆形但不隐藏不是圆的一部分的图像角,因此显示一个矩形.

网址为:http://chokate.maninactionscript.com/chokates/

点击沙漠图片,然后看右侧的放大效果图.如果您给镜头div边框1px固体红色,那么您可以看到div实际上是圆形的,但它并不隐藏图像的无用部分.

有任何想法吗?

解决方法

如果您的图像内有一个边框半径设置的元素,并且要隐藏图像的“角”,则需要在图像上设置border-radius.

但是在您的情况下,由于您的图像比您的包含元素大得多,因此无法正常工作.更好的是使用< div>作为镜头,并设置背景图像以匹配您的图像.

演示:http://jsfiddle.net/ThinkingStiff/wQyLJ/

HTML:

<div id="image-frame">
<img id="image" src="http://thinkingstiff.com/images/matt.jpg" />
<div id="lens" ></div>
<div>

CSS:

#image-frame {
    position: relative;
}

#lens {
    BACkground-repeat: no-repeat;
    border-radius: 150px;
    height: 150px;
    position: absolute;
    width: 150px;
}

脚本:

document.getElementById( 'image-frame' ).addEventListener( 'mousemove',function ( event ) {

    var lens = document.getElementById( 'lens' ),image = document.getElementById( 'image' ),radius = lens.CLIENtWidth / 2,imageTop = this.documentOffsetTop,imageLeft = this.documentOffsetLeft,zoom = 4,lensX = ( event.pageX - radius - imageLeft ) + 'px',lensY = ( event.pageY - radius - imageTop ) + 'px',zoomWidth = ( image.clientWidth * zoom ) + 'px',zoomHeight = ( image.clientHeight * zoom ) + 'px',zoomX = -( ( ( event.pageX - imageLeft ) * zoom ) - radius ) + 'px',zoomY = -( ( ( event.pageY - imageTop ) * zoom ) - radius ) + 'px';

    if( event.pageX > imageLeft + image.clientWidth 
        || event.pageX < imageLeft
        || event.pageY > imageTop + image.clientHeight 
        || event.pageY < imageTop  ) {

        lens.style.display = 'none';

    } else {

        lens.style.left = lensX;
        lens.style.top = lensY;
        lens.style.BACkgroundImage = 'url(' + image.src + ')';
        lens.style.BACkgroundSize = zoomWidth + ' ' + zoomHeight;
        lens.style.BACkgroundPosition = zoomX + ' ' + zoomY;
        lens.style.display = 'block';

    };

},false );

window.object.defineProperty( Element.prototype,'documentOffsetTop',{
    get: function () { 
        return this.offsetTop + ( this.offsetParent ? this.offsetParent.documentOffsetTop : 0 );
    }
} );

window.object.defineProperty( Element.prototype,'documentOffsetLeft',{
    get: function () { 
        return this.offsetLeft + ( this.offsetParent ? this.offsetParent.documentOffsetLeft : 0 );
    }
} );

输出:

大佬总结

以上是大佬教程为你收集整理的css – 如何在Chrome中制作循环Div?全部内容,希望文章能够帮你解决css – 如何在Chrome中制作循环Div?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。