【发布时间】:2013-07-17 07:19:26
【问题描述】:
我需要在 HTML 中创建一个非矩形 div。
问题是,它们都是透明的背景。此外,该 div 内的图像也是在一组图像之间旋转的幻灯片。
大图应该是旋转的。那部分很容易。最难的部分是那个指向杂项的三角形,对旋转的图片是透明的。而那个指针移动。在此示例中,这是对应于杂项的图像集。当用户点击食品包装时,指针必须移动指向食品包装
知道如何将图像切割成三角形并保持颜色对 img 透明,而其他部分对面板背景图像透明吗?
HTML:
<div ng-controller="rotatorController" id="parent">
<div id="menu" ng-click="loadList($event)">
<ul>
<li>Packaging
<ul>
<li>Food Packing</li>
<li>Non Food Packing</li>
</ul>
</li>
<li>
Promotional Item
<ul>
<li>bla bla bla, you got the drift</li>
</ul>
</li>
</ul>
</div>
<div ng-switch on="pic" ng-animate="'animate'" id="rotator" ng-repeat="image in images">
<div ng-switch-when="{{$index + 1}}"><img ng-src="{{image}}"></div>
</div>
</div>
css:
div#parent {
display: inline-block;
height: 570px;
width: 800px;
padding: 40px;
background: rgb(203, 203, 203);
background: -moz-linear-gradient(top, rgb(203, 203, 203) 0%, rgb(255, 255, 255) 50%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgb(203, 203, 203)), color-stop(50%, rgb(255, 255, 255)));
background: -webkit-linear-gradient(top, rgb(203, 203, 203) 0%, rgb(255, 255, 255) 50%);
background: -o-linear-gradient(top, rgb(203, 203, 203) 0%, rgb(255, 255, 255) 50%);
background: -ms-linear-gradient(top, rgb(203, 203, 203) 0%, rgb(255, 255, 255) 50%);
background: linear-gradient(to bottom, rgb(203, 203, 203) 0%, rgb(255, 255, 255) 50%);
}
div#rotator {
height: 500px;
width: 450px;
float: right;
position: absolute;
left: 300px;
overflow: hidden;
}
我需要 div#rotator 的形状类似于上面的 Div B .. 带有指向相应菜单的小曲线的矩形。关于如何创建它的任何想法?
简而言之,图像是普通的矩形图像,但应该像黑色 div 一样裁剪,并带有一个显示图像集类别的指针。
【问题讨论】:
-
我花了一段时间才弄清楚你到底想做什么。不过,这似乎是一个非常小的细节……你肯定不能只剪下几张色调与每张幻灯片大致匹配的三角形图像(比如漂亮的中间背景色),然后随着幻灯片的变化将它们换掉?在不使用某种“掩蔽”方法的情况下创建真正的透明度听起来颇具挑战。
-
实际上,只是为了补充我上面的评论,因为您确切地知道箭头在每张幻灯片上的垂直位置,您实际上可以对每个幻灯片进行精确的阴影和切割三角形的采样。然后在图片之间使用一点js淡入淡出,就无缝了。
-
也许我应该将其发布为答案,但我只有 65% 的把握确定我正确理解了您的问题。
-
是的,它是正确的,但是图像 div 有多个图像,从我的问题here 不断旋转,这使问题复杂化。
-
旋转图像具有可变的图像集。我将附上我的 php 后端和文件夹层次结构,以了解它在几个小时内应该如何工作。我现在需要离开。
标签: canvas html5-canvas html