【问题标题】:HTML/CSS - create alpha mask over imageHTML/CSS - 在图像上创建 alpha 蒙版
【发布时间】:2011-03-22 16:31:40
【问题描述】:

我想在我正在构建的网站中创建一种效果,其中图像被叠加层遮盖。叠加层应该创建一个“淡出”效果——我实际上并不想要任何动画,但是叠加层应该使图像看起来好像它正在淡入边缘的背景颜色。

类似这样的:http://imgur.com/fqtc9.png

我更喜欢用 CSS/HTML/JS 来做这件事——而不是图像。关于从哪里开始的任何想法?谢谢。

【问题讨论】:

    标签: javascript html css fade masking


    【解决方案1】:

    jQuery 开头。例如参见fadeIn 函数。

    对于图像上的静态 alpha 蒙版,使用 opacity css 属性:

    .myimage {
      filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50); 
      -moz-opacity: 0.5;
      -khtml-opacity: 0.5;
      opacity: 0.5;
    }
    

    【讨论】:

    • 抱歉,我在寻找静态淡入淡出效果,而不是过渡。请看我的例子(注意图像如何淡入背景)。谢谢!
    • 这将提供简单的不透明度,而不是改变图像不透明度的 alpha 蒙版。
    【解决方案2】:

    jQuery animate 函数(具有不透明度)应该/可能能够处理这个问题,尽管如果你只是淡入叠加层,antyrat 的答案应该也可以工作。

    【讨论】:

      【解决方案3】:

      啊-根据您对antyrat回答的评论,您最好的选择是创建一个包含效果的PNG图像(即半透明的白色形状),并使用CSS(@ 987654322@和z-index会参与)。

      目前您无法单独使用 HTML 和 CSS 创建非方形形状。

      【讨论】:

      • 如果淡入淡出图像在子DIV内部,你真的需要使用z-index吗?
      • 是的,我想我必须使用半透明图像,但希望有人有更清洁的解决方案 :) 谢谢!
      • @antyrat:您可以使用 opacity 创建一个半透明的白色区域,但该区域将是方形的,边缘锐利:不会褪色到边缘。 WebKit supports CSS gradients 包括径向渐变(以及 rgba 颜色),因此根据您想要的效果,您可以使用 WebKit 中的纯 CSS 来实现。但目前没有其他浏览器支持它。
      • @JohnB:可能不会,如果你有一个包含图片图像和渐变图像的div(带有position: relative)。
      【解决方案4】:

      我知道您专门要求 CSS/JavaScript 解决方案,我相信您有自己的理由。

      尽管如此,我只是想放弃像您已经在问题中发布的单个褪色图像文件的简单解决方案,没有花哨的编程效果。

      【讨论】:

        【解决方案5】:

        例如,您可以这样做:Example

        html

        <div class="photo_container">
                <div class="photo">
        <img src="/lakenwoods/images/mockup-photo.png" width="540" height="463" /></div>
                <div class="overlay">
                    <div class="content">
                        <h1>Welcome to Lake-N-Woods Realty</h1>
                        <p>
                        We are a Diverse and Highly Effective Real Estate Company, Dedicated to Satisfying all of our Clients Needs. We Specialize in Recreational, Rural and Investment Property throughout Bemidji and North Central Minnesota.
                        </p>
                        </div>
                </div>
                <div class="clear">
               </div>
           </div>
        

        CSS

        @charset "utf-8";
        /* CSS Document */
        
        .clear {
            clear:both;     
        }
        
        .photo_container {
            position: relative;
            width: 540px;
            height: 463px;
            overflow:hidden;
            margin: 0; padding:0;
        }
        
        .photo_container .photo {
            z-index:1;
        
        }
        
        
        .photo_container .overlay {
            width: 540px;
            height: 463px;
            background: url(/lakenwoods/images/mockup-overlay.png) no-repeat top center;
            position:absolute;
            bottom: 0;
            left: 0;
            z-index:10;
        
        }
        
        .photo_container .overlay .content h1 {
        
            position:absolute;
            top: 310px;
            left: 34px;
            font-family: Helvetica, Helvetica Neue, Arial, sans-serif;
            font-size:18px;
            color: #fff;
            font-weight: 700;
            width: 315px;
        
        }
        
        
        .photo_container .overlay .content p {
        
        
            position:absolute;
            top: 335px;
            left: 34px;
            font-family: Helvetica, Helvetica Neue, Arial, sans-serif;
            font-size:12px;
            color: #fff;
            width: 315px;
            line-height: 1.4em; 
        
        }
        

        【讨论】:

          猜你喜欢
          • 2011-09-18
          • 1970-01-01
          • 2013-07-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-09
          • 2013-10-23
          • 1970-01-01
          相关资源
          最近更新 更多