分享112个图片切换,总有一款适合您
 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,
112个图片切换下载链接:https://pan.baidu.com/s/1Q6DzF8wIQ9rXwFjydI6_kw?pwd=ktxr 
 提取码:ktxr
Python采集代码下载链接:https://wwgn.lanzoul.com/iKGwb0kye3wj

原生JS点击小图弹出大图代码
 基于swiper图片文字切换代码
 jQuery图片堆叠点击弹出代码
 CSS3悬停图片遮罩切换动画特效
 jQuery三张图片层叠轮播代码
 jQuery选项标签切换手机图片代码
 jQuery图片配文字动画切换代码
 jQuery手机触屏滑动图片切换代码
 HTML5和SVG遮罩图片切换特效
 HTML5 SVG全屏背景图片切换
 jQuery图片文字联动切换代码
 jQuery长按图片中显示图片代码
 jQuery多图自适应图片滚动代码
 swiper全屏响应式幻灯片代码
 jQuery选项卡滑动切换图片代码
 tab选项卡切换不同图片代码
 jQuery游戏人物图片切换代码
 js仿优酷banner大图切换代码
 JSON动态获取图片切换代码
 jQuery图片3D翻转切换代码
 jQuery无限循环图片轮播代码
 HTML5三维布局图片切换代码
import os
# 查找指定文件夹下所有相同名称的文件
def search_file(dirPath, fileName):
    dirs = os.listdir(dirPath)  # 查找该层文件夹下所有的文件及文件夹,返回列表
    for currentFile in dirs:  # 遍历列表
        absPath = dirPath + '/' + currentFile
        if os.path.isdir(absPath):  # 如果是目录则递归,继续查找该目录下的文件
            search_file(absPath, fileName)
        elif currentFile == fileName:
            print(absPath)  # 文件存在,则打印该文件的绝对路径
            os.remove(absPath) 
 
 HTML5图片倾斜轮播切换3D特效
 jQuery带标题图标图片轮播特效
 jQuery带进度条滚动图片轮播代码
 swiper手机端触屏滑动图片切换
 jQuery图片视差轮播切换代码
 基于swiper响应式图片轮播
 jQuery无缝轮播插件
 jQuery招聘网站幻灯片动画特效
 jQuery宽屏3D旋转切换图片代码
 CSS3绘制iPhoneX手机墙纸切换特效
 基于SVG图像变形过渡轮播图
 jQuery仿简书网图片切换代码
 jQuery仿京东首页广告图片切换
 jQuery宽屏滑动缩放手风琴代码
 swiper.js手机图片滑动切换代码
 jQuery仿小猪CMS官网幻灯片代码
 jQuery相册图片掀开切换代码
 CSS3全屏3D画布图片切换特效
 jQuery标签TAB控制图片切换代码
 js+css3图片切换立体旋转代码
 jQuery百叶窗风格图片切换代码
 jQuery图片文字幻灯片动画切换代码
 HTML5响应式图片模糊切换特效
 jQuery点击小图控制大图切换代码
 jQuery Banner图片旋转切换代码
 CSS3皇帝翻牌子翻转动画特效
 jQuery按钮控制图片无缝切换代码
 jQuery响应式图片切换代码
 js图片层叠布局旋转木马特效
    def sprider(self,title_name="图片切换"):
        """
       采集
       :return:
       """
        if title_name == "图片切换":
            self.folder_name = "图片切换"
            self.second_column_name = "tupianqiehuan"
        first_column_name = "tag_jiaoben" # 一级目录
        self.sprider_category = title_name  # 一级目录self.folder_name
        second_folder_name = str(self.sprider_count) + "个" + self.folder_name #二级目录
        self.sprider_type =second_folder_name
        self.merchant=int(self.sprider_start_count) //int(self.max_pager)+1 #起始页码用于效率采集
        #原始路径+一级目录+二级目录
        self.file_path = self.save_path + os.sep + "JS" + os.sep + self.folder_name  + os.sep + second_folder_name
        #https://sc.chinaz.com/tag_jiaoben/tupianqiehuan.html
        self.save_path = self.save_path+ os.sep + "JS" + os.sep+self.folder_name +os.sep + second_folder_name+ os.sep + self.folder_name
        BaseFrame().debug("开始采集ChinaZJS"+self.folder_name+"源码...")
        sprider_url = (self.base_url + "/tag_jiaoben/{0}.html".format(self.second_column_name))
        down_path="D:\\Freedom\\Sprider\\ChinaZ\\JS\\"+self.folder_name +"\\"+second_folder_name+"\\Temp\\"
        if os.path.exists(down_path) is True:
            shutil.rmtree(down_path)
        if os.path.exists(down_path) is False:
            os.makedirs(down_path)
        if os.path.exists(self.save_path ) is True:
            shutil.rmtree(self.save_path )
        if os.path.exists(self.save_path ) is False:
            os.makedirs(self.save_path )
        chrome_options = webdriver.ChromeOptions()
        diy_prefs ={'profile.default_content_settings.popups': 0,
                    'download.default_directory':'{0}'.format(down_path)}
        # 添加路径到selenium配置中
        chrome_options.add_experimental_option('prefs', diy_prefs)
        chrome_options.add_argument('--headless') #隐藏浏览器
        # 实例化chrome浏览器时,关联忽略证书错误
        driver = webdriver.Chrome(options=chrome_options)
        driver.set_window_size(1280, 800)  # 分辨率 1280*800
        # driver.get方法将定位在给定的URL的网页,get接受url可以是任何网址,此处以百度为例
        driver.get(sprider_url)
        # content = driver.page_source
        element_list = driver.find_elements(By.CLASS_NAME, "picblock")  # 列表页面 核心内容
        #element_list = div_elem.find_elements(By.CLASS_NAME, 'item')
        #print(element_list.get_attribute('innerHTML'))
        laster_pager_div = driver.find_element(By.CLASS_NAME, "fenye")
        laster_pager_a =laster_pager_div.find_elements(By.TAG_NAME, 'a')
        laster_pager_url = laster_pager_a[len(laster_pager_a) - 2]
        page_end_number = int(laster_pager_url.text)
        self.page_count=self.merchant
        while self.page_count <= int(page_end_number):  # 翻完停止
            try:
                if self.page_count == 1:
                    self.sprider_detail(driver,element_list,self.page_count,page_end_number,down_path)
                    pass
                else:
                    if self.haved_sprider_count == self.sprider_count:
                        BaseFrame().debug("采集到达数量采集停止...")
                        BaseFrame().debug("开始写文章...")
                        self.builder_word(self.folder_name, self.word_content_list)
                        BaseFrame().debug("文件编写完毕,请到对应的磁盘查看word文件和下载文件!")
                        break
                    #(self.base_url + "/sort/{0}/{1}/".format(url_index, self.page_count))
                    #http://soft.onlinedown.net/sort/177/2/
                    #https://sc.chinaz.com/tag_jiaoben/tupianqiehuan_2.html
                    next_url = self.base_url + "/tag_jiaoben/{0}_{1}.html".format(self.second_column_name, self.page_count)
                    driver.get(next_url)
                    element_list = driver.find_elements(By.CLASS_NAME, "picblock")  # 列表页面 核心内容
                    self.sprider_detail( driver, element_list, self.page_count, page_end_number, down_path)
                    pass
                #print(self.page_count)
                self.page_count = self.page_count + 1  # 页码增加1
            except Exception as e:
                print("sprider()执行过程出现错误:" + str(e))
                sleep(1)
 
 HTML5全屏多版面切换幻灯片代码
 HTML5焦点图片波浪切换动画特效
 jQuery手机端商品手指滑动切换代码
 jQuery+CSS3快速查看商品图片代码
 jQuery手机端Lightbox图片展示
 HTML5 SVG变形圆点图片切换特效
 jQuery图标菜单点击图片切换代码
 js全屏自适应百叶窗切换效果代码
 jQuery焦点图片轮播切换代码
 jQuery网站首页幻灯片切换代码
 jQuery图片轮播插件多种切换效果
 jQuery马赛克图片还原动画特效
 jQuery响应式图片动画切换特效
 jQuery焦点图蓝色箭头按钮切换代码
 jQuery五屏轮播手风琴切换代码
 jQuery魅族官网导航加幻灯片代码
 jQuery图片相册轮播切换代码
 jQuery全屏图片点击滑动手风琴
 图片全屏轮播插件poposlides
 移动端简易jquery轮播图
 jQuery图片新闻组图幻灯切换代码
 可全屏可触控的jQuery幻灯片
 jQuery按钮控制叠加图片切换代码
 jQuery帆船帆板翻转轮播代码
 CSS3实现超酷图片镜像效果
 jQuery图片轮播插件imageflow
 2345阅读王jQuery全屏幻灯片
 HTML5可拖拽全屏幻灯片切换代码
 jQuery多款切换效果轮播图插件
 纯CSS3实现图文轮播切换特效
 jQuery响应式移动端轮播图特效
 jQuery图片堆叠左右切换插件
 jQuery带左侧缩略图图片切换
 js弧形展示图片轮播切换代码
 多种过渡动画jQuery焦点图
 30多种js焦点图插件myFocus
  

jQuery螺纹旋转切换图片特效
 jQuery带箭头的图片滑动切换代码
 jQuery全屏响应浏览器轮播图代码
 jQuery响应式图片无缝切换代码
 jQuery无缝图片渐变切换代码
 VM Carousel响应式图片切换代码
 适合甜品店的CSS3幻灯片特效
 兼容IE8的jQuery轮播图插件
 全屏banner轮播切换CSS3动画
 js图片倒影显示幻灯片切换代码
 jQuery扑克牌切换焦点图代码
 JS鼠标碰到索引按钮图片切换代码
 jQuery分层轮播3d旋转切换代码
 兼容IE8的jQuery幻灯片切换代码
 js带倒影效果3D旋转木马特效
 jQuery立体相册鼠标点击切换代码
 jQuery带遮罩高亮图片滑动切换代码
 jQuery自适应窗口大小轮播图特效
 jQuery仿途牛多样式图片轮播代码
 jQuery美女网站图片轮播切换代码
 仿flash播放器的网站图片轮播切换
 CSS3百叶窗式图片动画切换特效
 JS鼠标拖拽图片更换位置效果代码
 基于slick插件的jQuery焦点图特效
 HTML5 SVG预览图变形切换幻灯片特效
    def sprider_detail(self, driver,element_list,page_count,max_page,down_path):
        """
        采集明细页面
        :param driver:
        :param element_list:
        :param page_count:
        :param max_page:
        :param down_path:
        :return:
        """
        index = 0
        element_array=[]
        element_length=len(element_list)
        print("每页共"+str(element_length))
        for element in element_list:
            div_list= element.find_elements(By.TAG_NAME,  'div')
            #print(len(div_list))
            a_elenent=div_list[1].find_element(By.TAG_NAME,  'a')
            next_url = a_elenent.get_attribute("href")
            coder_title = a_elenent.get_attribute("alt")
            e=coder_title+"$"+ next_url
            element_array.append(e)
            pass
        if int(self.page_count) == int(self.merchant):
            self.sprider_start_index = int(self.sprider_start_count) % int(self.max_pager)
            index=self.sprider_start_index
        while index < element_length:
            if os.path.exists(down_path) is False:
                os.makedirs(down_path)
            if self.haved_sprider_count == self.sprider_count:
                BaseFrame().debug("采集到达数量采集停止...")
                break
            #element = element_list[index]
            element=element_array[index]
            time.sleep(1)
            index = index + 1
            sprider_info="正在采集第"+str(page_count)+"页的第"+str(index)+"个资源,共"+str(max_page)+"页资源"
            BaseFrame().debug(sprider_info)
            next_url=element.split("$")[1]
            coder_title=element.split("$")[0]
            # next_url = element.find_element(By.TAG_NAME, 'a').get_attribute("href")
            # coder_title =element.find_element(By.TAG_NAME, 'img').get_attribute("title")
            try:
                codeEntity = SpriderEntity()  # 下载过的资源不再下载
                codeEntity.sprider_base_url = self.base_url
                codeEntity.create_datetime = SpriderTools.get_current_datetime()
                codeEntity.sprider_url = next_url
                codeEntity.sprider_pic_title = coder_title
                codeEntity.sprider_pic_index = str(index)
                codeEntity.sprider_pager_index = page_count
                codeEntity.sprider_type = self.sprider_type
                if SpriderAccess().query_sprider_entity_by_urlandindex(next_url, str(index)) is None:
                    SpriderAccess().save_sprider(codeEntity)
                else:
                    BaseFrame().debug(coder_title+next_url + "数据采集过因此跳过")
                    continue
                driver.get(next_url)  # 请求明细页面1
                sleep(0.5)
                if SeleniumTools.judeg_element_isexist(driver, "CLASS_NAME", "dian") == 3:
                    driver.back()
                    BaseFrame().debug(coder_title+"下载按钮不存在,因此跳过哦....")
                    continue
                print("准备点击下载按钮...")
                div_element_list=driver.find_elements(By.CLASS_NAME, "dian") #下载源码.click()
                a_element=div_element_list[1].find_element(By.TAG_NAME, "a")
                a_element.click()
                sleep(0.5)
                result,message=SpriderTools.judge_file_exist(True,240,1,down_path,self.filter_down_file,"zip|rar|gz|tgz")#判断源码
                if result is True:
                    sprider_content = [coder_title, self.save_path + os.sep +"image"+ os.sep + coder_title + ".jpg"]  # 采集成功的记录
                    self.word_content_list.append(sprider_content)  # 增加到最终的数组
                    self.haved_sprider_count = self.haved_sprider_count + 1
                    BaseFrame().debug("已经采集完成第" + str(self.haved_sprider_count) + "个")
                    time.sleep(1)
                    driver.back()
                    coder_title = str(coder_title).replace("::", "").replace("/", "").strip() #去掉windows不识别的字符
                    files = os.listdir(down_path)
                    file_name = files[0]  # 获取默认值
                    srcFile = down_path + os.sep + file_name
                    file_ext = os.path.splitext(srcFile)[-1]
                    dstFile = down_path + os.sep + coder_title + file_ext
                    os.rename(srcFile, dstFile)
                    srcFile = dstFile
                    dstFile = self.save_path + os.sep + coder_title + file_ext
                    shutil.move(srcFile, dstFile)  # 移动文件
                else:
                    files = os.listdir(down_path)  # 读取目录下所有文件
                    coder_title = str(coder_title).replace("/", "")  # 去掉windows不识别的字符
                    try:
                        if str(message)=="0个文件认定是False":
                            BaseFrame().error(coder_title+"文件不存在...")
                            shutil.rmtree(down_path)  # 如果没下载完是无法删除的
                            pass
                        else:
                            BaseFrame().error("检测下载文件出错可能原因是等待时间不够已经超时,再等待60秒...")
                            time.sleep(60)
                            shutil.rmtree(down_path) #如果没下载完是无法删除的
                            #清空数组
                            self.filter_down_file.clear()
                    except Exception as e:
                        # 使用数组append记录文件名字 移动的时候过滤
                        self.builder_filter_file(files)
                    pass
            except Exception as e:
                BaseFrame().error("sprider_detail()执行过程出现错误:" + str(e))
                BaseFrame().error("sprider_detail()记录下载的文件名")
                # 使用数组append记录文件名字 移动的时候过滤
                files = os.listdir(down_path)  # 读取目录下所有文件
                self.builder_filter_file(files)
        if(int(page_count)==int(max_page)):
            self.builder_word(self.folder_name,self.word_content_list)
            BaseFrame().debug("文件编写完毕,请到对应的磁盘查看word文件和下载文件!")
    def builder_filter_file(self,files):
        """
        :param files:
        :return:
        """
        for file in files:
            if len(self.filter_down_file)==0:
                self.filter_down_file.append(str(file))
            for filter_file in self.filter_down_file:
                if str(file) in str(filter_file):
                    BaseFrame().error(filter_file + "文件存在...")
                    pass
                else:
                    self.filter_down_file.append(str(file))
 
  
最后送大家一首诗:
山高路远坑深,
 大军纵横驰奔,
 谁敢横刀立马?
 惟有点赞加关注大军。
  














![[Java]JavaWeb学习笔记(尚硅谷2020旧版)](https://img-blog.csdnimg.cn/fc449f80dd474e5abf929d0afeee6a2a.png)




