html--书本翻页特效

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  <title>SVG: Multiples Make A 3d Flip Book</title>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js" type="text/javascript"></script>


    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">

  
      <link rel="stylesheet" href="css/style.css">

  
</head>

<body>

  <div class ='svg'>
<h2>SVG: Animate, Clip, Mask, Use, Filter</h2>
<?xml version="1.0" standalone="no"?>
<svg width="400px" height="400px" viewBox="-200 -100 400 400" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
	<defs>
		<rect id="animatedRect" x="-400" y="-100" width="400" height="400">
			<animateTransform attributeName="transform" type="rotate"
				from="45,0,-150" to="0,0,-150"
				begin="0s" dur="3s"
				repeatCount="indefinite"
				calcMode="spline" keyTimes="0;1" keySplines="0.42 0.0 0.58 1.0"
			/>
		</rect>
		<clipPath id="clip">
			<use xlink:href="#animatedRect"/>
		</clipPath>
		<mask id="mask" maskUnits="userSpaceOnUse" x="-200" y="-100" width="400" height="400">
			<rect x="-150" y="0" width="150" height="200" fill="hsla(255,255%,255%,1)" clip-path="url(#clip)"/>
        </mask>
		<g id="page">
			<rect x="-150" y="0" width="150" height="200" fill="hsla(52, 95%, 95%, 1)"/>
			<image xlink:href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/131045/electricwolf.jpg" x="-150" y="25" width="150" height="150"/>
		</g>
		<linearGradient id="centerGrad" x1="1" x2="0">
			<stop offset="0" stop-color="hsla(0,0%,0%,1)" stop-opacity="0.3"/>
			<stop offset="0.02" stop-color="hsla(0,0%,0%,1)" stop-opacity="0"/>
		</linearGradient>
		<filter id="shadow">
			<feOffset in="SourceAlpha">
				<animate attributeName="dx"
					begin="0s" dur="3s"
					repeatCount="indefinite"
					calcMode="linear" keyTimes="0;0.5;1" values="0;-1;0"
				/>
				<animate attributeName="dy"
					begin="0s" dur="3s"
					repeatCount="indefinite"
					calcMode="linear" keyTimes="0;0.5;1" values="0;1;0"
				/>
			</feOffset>
			<feGaussianBlur>
				<animate attributeName="stdDeviation"
					begin="0s" dur="3s"
					repeatCount="indefinite"
					calcMode="linear" keyTimes="0;0.5;1" values="0;3;0"
				/>
			</feGaussianBlur>
			<feMerge>
				<feMergeNode/>
				<feMergeNode in="SourceGraphic"/>
			</feMerge>
		</filter>
	</defs>

	<rect x="-161" y="2" width="322" height="208" fill="hsla(52, 5%, 55%, 1)" rx="2" ry="2"/>
	<rect x="-160" y="1" width="320" height="208" fill="hsla(1, 95%, 15%, 1)" rx="2" ry="2"/>
	<path d="M-150,0 L-155,5 V205 L-5,205 L0,200" fill="hsla(52, 5%, 85%, 1)"/>
	<path d="M150,0 L155,5 V205 L5,205 L0,200" fill="hsla(52, 5%, 85%, 1)"/>
	
	<rect x="0" width="150" height="200" fill="hsla(52, 95%, 95%, 1)"/>
	<g font-family="ubuntu" font-size="15">
		<text x="35" y="85">WoW SVG!</text>
		<text x="45" y="110">It's A 3D</text>
		<text x="40" y="135">Flip Book!</text>
	</g>
	<use xlink:href="#page"/>
	<rect  x="-400" y="0" width="400" height="200" fill="url(#centerGrad)"/>
    <g filter="url(#shadow)">
        <g>
            <g mask="url(#mask)">
                <use xlink:href="#page"/>
                <use xlink:href="#animatedRect" fill="url(#centerGrad)"/>
            </g>
            <animateTransform attributeName="transform" type="rotate"
                from="-90,0,-150" to="0,0,-150"
                begin="0s" dur="3s"
                repeatCount="indefinite"
                calcMode="spline" keyTimes="0;1" keySplines="0.42 0.0 0.58 1.0"/>
        </g>
    </g>
</svg>
</div>
  <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>

  

</body>

</html>

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

HTML 翻书效果可以通过 CSS3 的 3D 转换和动画实现。下面是一个简单的例子: HTML: ```html <div class="book"> <div class="page">Page 1</div> <div class="page">Page 2</div> <div class="page">Page 3</div> <div class="page">Page 4</div> </div> ``` CSS: ```css .book { position: relative; width: 200px; height: 300px; perspective: 1000px; } .page { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: white; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); transform-style: preserve-3d; backface-visibility: hidden; transition: transform 1s; } .page:nth-child(odd) { transform-origin: left center; } .page:nth-child(even) { transform-origin: right center; } .book:hover .page:nth-child(odd) { transform: rotateY(-180deg); } .book:hover .page:nth-child(even) { transform: rotateY(180deg); } ``` 在这个例子中,我们创建了一个包含四个页面的 `.book` 容器,并且给它设置了 `perspective` 属性,以便在进行 3D 转换时产生逼真的效果。每个页面都是一个 `.page` 元素,被绝对定位在 `.book` 容器内。我们使用 `transform-style: preserve-3d` 属性将页面转换为 3D 空间,使用 `backface-visibility: hidden` 属性隐藏背面,以避免翻转时出现奇怪的效果。我们还为每个页面设置了 `transform-origin` 属性,以便在翻转时沿着正确的轴旋转。 最后,我们使用 `transition` 属性为页面设置了过渡效果,并使用 `:hover` 伪类选择器来触发翻转动画。在上面的代码中,我们为奇数页设置了向左旋转的动画,为偶数页设置了向右旋转的动画,以产生逼真的翻书效果。 注意:这只是一个简单的示例,实际中可能需要更复杂的代码才能实现更高级的翻书效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fo安方

觉得俺的文章还行,感谢打赏,爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值