测试页面:修订间差异
来自SOKA CAFE
小 |
小 |
||
| 第10行: | 第10行: | ||
box-sizing: border-box; | box-sizing: border-box; | ||
} | } | ||
.container { | .container { | ||
width: 270px; | |||
height: 133px; | |||
margin: 0 auto; | |||
border-radius: | background: #fff; | ||
border-radius: 8px; | |||
padding: 10px; | |||
box-shadow: 0 4px 16px rgba(0,0,0,0.1); | |||
} | |||
.carousel { | |||
position: relative; | |||
width: 250px; | |||
height: 113px; | |||
border-radius: 6px; | |||
overflow: hidden; | |||
} | |||
.carousel-wrapper { | |||
display: flex; | |||
width: 100%; | |||
height: 100%; | |||
transition: transform 0.5s ease; | |||
} | |||
.carousel-item { | |||
flex: 0 0 100%; | |||
width: 100%; | |||
height: 100%; | |||
} | |||
.carousel-link { | |||
display: block; | |||
width: 100%; | |||
height: 100%; | |||
} | |||
.carousel-item img { | |||
width: 100%; | |||
height: 100%; | |||
object-fit: cover; | |||
} | |||
.carousel-btn { | |||
position: absolute; | |||
top: 50%; | |||
transform: translateY(-50%); | |||
width: 24px; | |||
height: 24px; | |||
background: rgba(0,0,0,0.3); | |||
color: #fff; | |||
border: none; | |||
border-radius: 50%; | |||
font-size: 14px; | |||
cursor: pointer; | |||
z-index: 10; | |||
} | |||
.prev-btn { | |||
left: 8px; | |||
} | |||
.next-btn { | |||
right: 8px; | |||
} | |||
.carousel-indicators { | |||
position: absolute; | |||
bottom: 8px; | |||
left: 50%; | |||
transform: translateX(-50%); | |||
display: flex; | |||
gap: 4px; | |||
} | |||
.indicator { | |||
width: 8px; | |||
height: 8px; | |||
border-radius: 50%; | |||
background: rgba(255,255,255,0.5); | |||
cursor: pointer; | |||
} | |||
.indicator.active { | |||
background: #fff; | |||
} | |||
</style> | |||
</head> | |||
<body> | |||
<div class="container"> | |||
<div class="carousel" id="carousel"> | |||
<div class="carousel-wrapper" id="carouselWrapper"> | |||
<div class="carousel-item"> | |||
<a href="https://soka.cafe/index.php?title=创学" class="carousel-link"> | |||
<img src="https://soka.cafe/Special:FilePath/解惑.jpg" alt="解惑"> | |||
</a> | |||
</div> | |||
<div class="carousel-item"> | |||
<a href="https://soka.cafe/index.php?title="维基观看与使用指南" class="carousel-link"> | |||
<img src="https://soka.cafe/Special:FilePath/导航1.1.jpg" alt="维基观看与使用指南"> | |||
</a> | |||
</div> | |||
<div class="carousel-item"> | |||
<a href="https://soka.cafe/index.php?title=入站须知" class="carousel-link"> | |||
<img src="https://soka.cafe/Special:FilePath/条责.jpg" alt="入站须知"> | |||
</a> | |||
</div> | |||
</div> | |||
<button class="carousel-btn prev-btn" id="prevBtn"><</button> | |||
<button class="carousel-btn next-btn" id="nextBtn">></button> | |||
<div class="carousel-indicators" id="indicators"></div> | |||
</div> | |||
</div> | |||
<script> | |||
const carouselWrapper = document.getElementById("carouselWrapper"); | |||
const prevBtn = document.getElementById("prevBtn"); | |||
const nextBtn = document.getElementById("nextBtn"); | |||
const indicators = document.getElementById("indicators"); | |||
const carouselItems = document.querySelectorAll(".carousel-item"); | |||
const itemCount = carouselItems.length; | |||
let currentIndex = 0; | |||
function renderIndicators() { | |||
indicators.innerHTML = ""; | |||
for (let i = 0; i < itemCount; i++) { | |||
const indicator = document.createElement("div"); | |||
indicator.className = `indicator ${i === currentIndex ? "active" : ""}`; | |||
indicator.addEventListener("click", () => goToSlide(i)); | |||
indicators.appendChild(indicator); | |||
} | |||
} | } | ||
function goToSlide(index) { | |||
currentIndex = index; | |||
carouselWrapper.style.transform = `translateX(-${currentIndex * 100}%)`; | |||
renderIndicators(); | |||
} | } | ||
function prevSlide() { | |||
currentIndex = (currentIndex - 1 + itemCount) % itemCount; | |||
goToSlide(currentIndex); | |||
} | } | ||
function nextSlide() { | |||
currentIndex = (currentIndex + 1) % itemCount; | |||
goToSlide(currentIndex); | |||
} | } | ||
. | let autoPlay = setInterval(nextSlide, 5000); | ||
const carousel = document.getElementById("carousel"); | |||
carousel.addEventListener("mouseenter", () => clearInterval(autoPlay)); | |||
carousel.addEventListener("mouseleave", () => autoPlay = setInterval(nextSlide, 5000)); | |||
prevBtn.addEventListener("click", prevSlide); | |||
nextBtn.addEventListener("click", nextSlide); | |||
renderIndicators(); | |||
</script> | |||
</body> | |||
</html> | |||
---- | |||
<html lang="zh-CN"> | |||
<head> | |||
<meta charset="UTF-8"> | |||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |||
</head> | </head> | ||
<body> | <body> | ||
<div | <div id="pageContainer" style="position: relative; width: 300px; height: 200px; border: 1px solid #000; overflow: hidden;"> | ||
<div | <div id="page1" style="position: absolute; width: 100%; height: 100%; background: #f0f0f0; text-align: center; line-height: 200px; font-size: 20px;"> | ||
第一页 | |||
</div> | </div> | ||
< | <div id="page2" style="position: absolute; width: 100%; height: 100%; background: #e0e0e0; text-align: center; line-height: 200px; font-size: 20px; left: 300px;"> | ||
第二页 | |||
</div> | </div> | ||
</div> | </div> | ||
< | <button onclick="turnPage()" style="margin-top: 10px;">← 翻页</button> | ||
<script> | |||
let isFirstPage = true; | |||
const page1 = document.getElementById('page1'); | |||
const page2 = document.getElementById('page2'); | |||
const speed = 5; | |||
function turnPage() { | |||
if (isFirstPage) { | |||
animatePage(page1, -300, page2, 0); | |||
} else { | |||
animatePage(page2, 300, page1, 0); | |||
} | |||
isFirstPage = !isFirstPage; | |||
} | |||
function animatePage(pageOut, targetOut, pageIn, targetIn) { | |||
let currentOut = parseInt(pageOut.style.left || 0); | |||
let currentIn = parseInt(pageIn.style.left || 300); | |||
function frame() { | |||
if (currentOut !== targetOut) { | |||
currentOut += (targetOut - currentOut) > 0 ? speed : -speed; | |||
if (Math.abs(currentOut - targetOut) < speed) currentOut = targetOut; | |||
pageOut.style.left = currentOut + 'px'; | |||
} | |||
if (currentIn !== targetIn) { | |||
currentIn += (targetIn - currentIn) > 0 ? speed : -speed; | |||
if (Math.abs(currentIn - targetIn) < speed) currentIn = targetIn; | |||
pageIn.style.left = currentIn + 'px'; | |||
} | |||
if (currentOut !== targetOut || currentIn !== targetIn) { | |||
requestAnimationFrame(frame); | |||
} | |||
} | |||
requestAnimationFrame(frame); | |||
} | |||
</script> | |||
} | |||
</script> | |||
</body> | </body> | ||
</html> | </html> | ||
2026年1月14日 (三) 18:58的版本
第一页
第二页
</tabber> |-|历史上的星期=
|-|活动公告=
久本的虚拟化身“Paru”悬浮在宗教都市的圣殿中,脚下是由数以百万记的信徒们的祈祷所化作成的铁链。
在这片虚无的大地中,一道裂痕撕开了穹顶,《激突!美食赛跑!》的音乐,轰鸣而至……
</tabber>
字体测试
字体测试
字体测试
表格测试
| 申请号 | CN951080741 | 申请日期 | 1995-07-28 |
| 公告号 | CN1141833A | 公布/公告日期 | 1997-02-05 |
| 发明人 | 周寿坤、王志泽、孙正江 | 申请(专利权)人 | 北京汇佳物产技术公司 |
| 专利代理人 | 何润华 | 专利代理机构 | 北京申翔知识产权服务公司专利代理部 |
| 专利类型 | 发明专利 | 主分类号 | B23K3/047 |
| 住所 | 北京市8756信箱 | ||
| 法律状态 | - | ||
| 摘要 | 本发明是对另一在先专利(ZL 94 21966.X)的改进方案。在焊枪装置上的改进是取消了焊针尾丝,和用于连接尾丝的衔接器、退焊针尾丝的滑杆。导电通路的这一部分直接由焊针连接卡爪、大簧座、大簧、导电套与穿过壳体的外接电源线连接。大簧兼作导电线圈和复位弹簧使用,通电时使内套磁化,吸引大簧座位移并带动卡爪夹带焊针在瓷环卡爪中拉弧,断电后使焊针复位固结焊口。自动拉弧钎焊机包括焊枪、焊针和自控电路。自控电路至少设置定时电路,还可串联过流保护电路,低于规定电压自锁电路、闪光电路。 | ||




