<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://new.pvzhe.wiki/w/%E6%A8%A1%E5%9D%97:Swiper?action=history&amp;feed=atom</id>
	<title>模块:Swiper - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://new.pvzhe.wiki/w/%E6%A8%A1%E5%9D%97:Swiper?action=history&amp;feed=atom"/>
	<link rel="alternate" type="text/html" href="https://new.pvzhe.wiki/w/%E6%A8%A1%E5%9D%97:Swiper?action=history"/>
	<updated>2026-04-19T16:48:16Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://new.pvzhe.wiki/index.php?title=%E6%A8%A1%E5%9D%97:Swiper&amp;diff=395&amp;oldid=prev</id>
		<title>Operator：​创建页面，内容为“local p = {} local trim = mw.text.trim local nowiki = mw.text.nowiki  local DEFAULTS = {     MAX_SLIDES = 100,     MIN_DELAY = 500,     DEFAULT_DELAY = 5000,     ALLOWED_EFFECTS = {         slide = true, fade = true, cube = true,          coverflow = true, flip = true, cards = true, creative = true     } }  local function safeStr(s)     if not s then return &#039;&#039; end     return nowiki(trim(tostring(s))) end  local function buildOptions(args, slideCount)     local…”</title>
		<link rel="alternate" type="text/html" href="https://new.pvzhe.wiki/index.php?title=%E6%A8%A1%E5%9D%97:Swiper&amp;diff=395&amp;oldid=prev"/>
		<updated>2026-03-29T18:36:00Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“local p = {} local trim = mw.text.trim local nowiki = mw.text.nowiki  local DEFAULTS = {     MAX_SLIDES = 100,     MIN_DELAY = 500,     DEFAULT_DELAY = 5000,     ALLOWED_EFFECTS = {         slide = true, fade = true, cube = true,          coverflow = true, flip = true, cards = true, creative = true     } }  local function safeStr(s)     if not s then return &amp;#039;&amp;#039; end     return nowiki(trim(tostring(s))) end  local function buildOptions(args, slideCount)     local…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local trim = mw.text.trim&lt;br /&gt;
local nowiki = mw.text.nowiki&lt;br /&gt;
&lt;br /&gt;
local DEFAULTS = {&lt;br /&gt;
    MAX_SLIDES = 100,&lt;br /&gt;
    MIN_DELAY = 500,&lt;br /&gt;
    DEFAULT_DELAY = 5000,&lt;br /&gt;
    ALLOWED_EFFECTS = {&lt;br /&gt;
        slide = true, fade = true, cube = true, &lt;br /&gt;
        coverflow = true, flip = true, cards = true, creative = true&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function safeStr(s)&lt;br /&gt;
    if not s then return &amp;#039;&amp;#039; end&lt;br /&gt;
    return nowiki(trim(tostring(s)))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function buildOptions(args, slideCount)&lt;br /&gt;
    local opt = {&lt;br /&gt;
        autoHeight = true,&lt;br /&gt;
        effect = DEFAULTS.ALLOWED_EFFECTS[args[&amp;#039;效果&amp;#039;]] and safeStr(args[&amp;#039;效果&amp;#039;]) or &amp;#039;slide&amp;#039;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if slideCount &amp;gt; 1 then&lt;br /&gt;
        if trim(args[&amp;#039;循环&amp;#039;]) == &amp;#039;是&amp;#039; then&lt;br /&gt;
            opt.loop = true&lt;br /&gt;
        end&lt;br /&gt;
        if trim(args[&amp;#039;自动播放&amp;#039;]) == &amp;#039;是&amp;#039; then&lt;br /&gt;
            local delay = tonumber(args[&amp;#039;延迟&amp;#039;]) or DEFAULTS.DEFAULT_DELAY&lt;br /&gt;
            if delay &amp;lt; DEFAULTS.MIN_DELAY then&lt;br /&gt;
                delay = DEFAULTS.DEFAULT_DELAY&lt;br /&gt;
            end&lt;br /&gt;
            opt.autoplay = {&lt;br /&gt;
                delay = delay,&lt;br /&gt;
                disableOnInteraction = false&lt;br /&gt;
            }&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if trim(args[&amp;#039;分页&amp;#039;]) ~= &amp;#039;否&amp;#039; then&lt;br /&gt;
        opt.pagination = {&lt;br /&gt;
            el = &amp;#039;.swiper-pagination&amp;#039;,&lt;br /&gt;
            clickable = true&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if trim(args[&amp;#039;翻页&amp;#039;]) == &amp;#039;箭头&amp;#039; then&lt;br /&gt;
        opt.navigation = {&lt;br /&gt;
            prevEl = &amp;#039;.swiper-button-prev&amp;#039;,&lt;br /&gt;
            nextEl = &amp;#039;.swiper-button-next&amp;#039;&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return opt&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local slides = {}&lt;br /&gt;
&lt;br /&gt;
    for i = 1, DEFAULTS.MAX_SLIDES do&lt;br /&gt;
        local key = tostring(i)&lt;br /&gt;
        local v = args[key]&lt;br /&gt;
        if v == nil then break end&lt;br /&gt;
        v = trim(v)&lt;br /&gt;
        if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            table.insert(slides, v)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local cnt = #slides&lt;br /&gt;
    if cnt == 0 then&lt;br /&gt;
        return &amp;#039;&amp;lt;div style=&amp;quot;padding:1rem;text-align:center;color:#ccc;&amp;quot;&amp;gt;暂无轮播内容&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local options = buildOptions(args, cnt)&lt;br /&gt;
    local dataOpts = mw.text.jsonEncode(options)&lt;br /&gt;
&lt;br /&gt;
    local id = safeStr(args[&amp;#039;id&amp;#039;])&lt;br /&gt;
    if id == &amp;#039;&amp;#039; then&lt;br /&gt;
        id = &amp;#039;pvzhe-swiper-&amp;#039; .. frame:preprocess(&amp;#039;{{REVISIONID}}&amp;#039;) .. &amp;#039;-&amp;#039; .. math.random(10000)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local html = {}&lt;br /&gt;
    table.insert(html, &amp;#039;&amp;lt;div id=&amp;quot;&amp;#039; .. id .. &amp;#039;&amp;quot; class=&amp;quot;swiper pvzhe-swiper&amp;quot; data-swiper-options=\&amp;#039;&amp;#039; .. dataOpts .. &amp;#039;\&amp;#039; role=&amp;quot;region&amp;quot; aria-label=&amp;quot;轮播图&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
    table.insert(html, &amp;#039;&amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
    for idx, s in ipairs(slides) do&lt;br /&gt;
        local ariaLabel = &amp;#039;第 &amp;#039; .. idx .. &amp;#039; 张，共 &amp;#039; .. cnt .. &amp;#039; 张&amp;#039;&lt;br /&gt;
        table.insert(html, &amp;#039;&amp;lt;div class=&amp;quot;swiper-slide&amp;quot; role=&amp;quot;group&amp;quot; aria-label=&amp;quot;&amp;#039; .. ariaLabel .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. frame:preprocess(s) .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    table.insert(html, &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
    if trim(args[&amp;#039;分页&amp;#039;]) ~= &amp;#039;否&amp;#039; then&lt;br /&gt;
        table.insert(html, &amp;#039;&amp;lt;div class=&amp;quot;swiper-pagination&amp;quot; aria-label=&amp;quot;轮播图分页&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    if trim(args[&amp;#039;翻页&amp;#039;]) == &amp;#039;箭头&amp;#039; then&lt;br /&gt;
        table.insert(html, &amp;#039;&amp;lt;div class=&amp;quot;swiper-button-prev&amp;quot; aria-label=&amp;quot;上一张&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
        table.insert(html, &amp;#039;&amp;lt;div class=&amp;quot;swiper-button-next&amp;quot; aria-label=&amp;quot;下一张&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    table.insert(html, &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
    return table.concat(html)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Operator</name></author>
	</entry>
</feed>