学会 制作极简搜索浏览器 —— 并将 ChatGPT 接入浏览器

news2024/11/27 2:23:00

9a69fede8b2044a79dd834e3e48f20b4.png前期回顾f8e3cc1a0f694ac2b665ca2ad14c49d7.png 

Vue3 + Ts + Vite + pnpm 项目中集成 —— eslint 、prettier、stylelint、husky、commitizen_0.活在风浪里的博客-CSDN博客搭建VIte + Ts + Vue3项目并集成eslint 、prettier、stylelint、huskyhttps://blog.csdn.net/m0_57904695/article/details/129950163?spm=1001.2014.3001.5502

本次目标:✌

1:🚚 制作一个自己的极简浏览器,并尝试运行!

2:💎在浏览器合并几个或多个ChartGPT,加快搜索,直达答案!

3:💎🚧 做一个墓室跑酷游戏,并尝试玩一把!


🚕 佛伯乐:详细吗?能看懂吗?

🙉 小帅:必然详细,一遍过,一遍懂,极简!我说的是真的!🚀

👙👄 小美:那我想要参考下源码可以吗?你能把游戏源码放上面吗?我能不能线上预览一下?

🙉 小帅:Of course, my little baa north nose,源码在下面 ,可以线上运行,不过进入页面我设置了密码,你可以找我要,免费分享!!!

👄 小美:哦买噶!那太方便了,我现在能看吗?只是在PC可以运行吗?

🙉 小帅:有手机版!游戏兼容移动、PC!网络环境不受限、 目前不支持水果机子😹

念及此!直接开始~

线上预览:主页

仓库地址源码在主页资源! 

手机安装包在主页资源,目前不支持水果机子,哎,难办,难办我看就别办了!🔌哈哈

https://download.csdn.net/download/m0_57904695/87697108


目录

index

图例: 

 index.css


index

<html>
  <head></head>
  <body>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /><meta
      name="color-scheme"
      content="light dark"
    /><meta
      name="viewport"
      content="width=device-width, initial-scale=1, user-scalable=no, minimal-ui"
    /><title>主页</title><link rel="stylesheet" href="homepage.css" /><style></style>
    <div class="frosted-glass" id="gesture-indicator"></div>
    <div id="content">
      <div class="search_part">
        <a class="logo" href="" onclick="window.via.cmd(257);" title="书签"
          ><img class="smaller" src="./logo.svg"
        /></a>
        <form onsubmit="return search()" class="search_bar" title="搜索">
          <button onclick="search()" id="search_submit" value="" aria-label="搜索">
            <div class="search icon"></div></button
          ><span
            ><input
              autofocus="autofocus"
              class="search"
              onfocus="showButton()"
              onblur="hideButton()"
              type="text"
              value=""
              autocomplete="off"
              id="search_input"
              title="搜索"
              placeholder="活在风浪里________请键入..."
          /></span>
        </form>
      </div>
      <div id="bookmark_part">
        <div id="box_container">
          <div class="box">
            <p class="title" aria-hidden="true" style="background: #ff0000"></p>
            <div
              class="overlay"
              style="
                background: url('https://img.51miz.com/preview/element/00/01/04/46/E-1044648-0962B463.jpg')
                  no-repeat;
                background-size: cover;
                background-position: center center;
              "
            ></div>
            <p class="url" aria-hidden="true">AI聊天</p>
            <a href="./Ai/login.html" title="ChartGPT镜像集合"></a>
          </div>
          <div class="box">
            <p class="title" aria-hidden="true" style="background: hsla(0, 0%, 0%, 0)"></p>
            <div
              class="overlay"
              style="
                background: url('https://ts1.cn.mm.bing.net/th/id/R-C.1a5a53f1ea9569eb2426b65026110ac1?rik=260ASfM%2b4Stsrg&riu=http%3a%2f%2ficon.chrafz.com%2fuploads%2f151023%2f1-151023205A4619.png&ehk=kJwPRrb8Dsb5aTPUFYNzr4NfDM5%2byqIm7HiEvNaHY68%3d&risl=&pid=ImgRaw&r=0')
                  no-repeat;
                background-size: cover;
                background-position: center center;
              "
            ></div>
            <p class="url" aria-hidden="true">
              游戏
              <a href="youxi/index.html" title="墓地逃亡"></a>
            </p>
          </div>
          <div class="box">
            <p class="title" aria-hidden="true" style="background: hsla(0, 0%, 0%, 0)"></p>
            <div
              class="overlay"
              style="background: url('./img/author.jpg') no-repeat center center/ cover"
            ></div>
            <p class="url" aria-hidden="true">CSDN</p>
            <a
              href="https://blog.csdn.net/m0_57904695?spm=1000.2115.3001.5343"
              title="最新最全一手资讯--我的CSDN"
            ></a>
          </div>
          <div class="box">
            <p class="title" aria-hidden="true" style="background: #1a729b"></p>
            <div
              class="overlay"
              style="
                background: url('https://tse4-mm.cn.bing.net/th/id/OIP-C.DwpRopQ0mXFmzwabbrso5gHaHf?pid=ImgDet&rs=1')
                  no-repeat;
                background-size: cover;
                background-position: center center;
              "
            ></div>
            <p class="url" aria-hidden="true">免费音乐</p>
            <a href="https://tools.liumingye.cn/music/#/" title="Burger工具站"></a>
          </div>
        </div>
      </div>
      <script type="text/javascript">
        function showButton() {
          document.getElementById("search_submit").style.display = "block";
        }

        function hideButton() {
          "" == document.getElementById("search_input").value &&
            (document.getElementById("search_submit").style.display = "none");
        }

        function search() {
          var a = document.getElementById("search_input");
          if ("" != a.value) {
            try {
              searchText(a.value);
            } catch (b) {
              alert(b);
            }
            a.value = "";
            document.getElementById("search_submit").style.display = "none";
            document.activeElement.blur();
          }
          return !1;
        }

        function fadeIn(a) {
          if (a && a.style)
            var b = Math.max(0.05, parseFloat(a.style.opacity)),
              d = setInterval(function () {
                1 <= b && clearInterval(d);
                a.style.opacity = Math.min(1, b);
                b += 0.1 * b;
              }, 6);
        }

        function isGestureDisabled() {
          return (document.activeElement && "search_input" == document.activeElement.id) ||
            (window.via && !window.via.cmd(515))
            ? !0
            : 0 != (document.documentElement.scrollTop || document.body.scrollTop);
        }

        function initGesture(d) {
          var b = document.getElementById("content"),
            e = 0,
            f = 1,
            g = !1,
            a = 0;
          d.addEventListener(
            "touchstart",
            function (c) {
              g = isGestureDisabled();
              e = c.touches[0].pageY;
              a = 0;
            },
            !1
          );
          d.addEventListener(
            "touchmove",
            function (c) {
              g ||
                (0 < a /*&&(document.body.style.position="fixed")*/,
                (a = c.touches[0].pageY - e),
                0 < a &&
                  98 > a &&
                  ((f = Math.max(0.1, 1 - Math.min(1, a / 98))),
                  (b.style.opacity = f),
                  (b.style.transform = "translateY(" + a + "px)")));
            },
            !1
          );
          d.addEventListener(
            "touchend",
            function (c) {
              /*document.body.style.position="static";*/
              if (0 != a) {
                if (88.2 < a) alert("不使用Via浏览此网页,你再下拉也打不开地址栏!");
                try {
                  window.via.cmd(514);
                } catch (h) {}
                b.style.transform = "translateY(0px)";
                fadeIn(b);
              }
            },
            !1
          );
        }
        initGesture(document.getElementById("gesture-indicator"));
        initGesture(document.getElementById("content"));
      </script>
      <script charset="gbk" src="opensug.js"></script>
      <script type="text/javascript">
        function show(str) {
          var searchbox = document.getElementById("search_input");
          searchbox.innerHTML = str;
          searchbox.blur();
          search();
        }
        var params = {
          XOffset: 0,
          YOffset: 0,
          fontColor: "#666666",
          fontColorHI: "#FFF",
          fontSize: "14px",
          borderColor: "#eee",
          bgcolorHI: "#7B90E3",
          sugSubmit: false,
        };
        BaiduSuggestion.bind("search_input", params, show);
      </script>
      <script>
        function searchText(text) {
          // 必应
          location.href = "https://cn.bing.com/search?q=" + text;
          // 百度
          //   location.href = "https://www.baidu.com/s?ie=UTF-8&wd==" + text;
        }
      </script>
    </div>
  </body>
</html>

目前调用的是必应:

图例: 

 index.css

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
html {
  height: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
  -webkit-focus-ring-color: rgba(0, 0, 0, 0);
}
body {
  min-height: 100%;
  max-width: 100%;
  width: 600px;
  background: translate;
  margin: auto;
  text-align: center;
}
#gesture-indicator {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 0;
  overflow: hidden;
  word-break: break-all;
}
#content {
  position: absolute;
  max-width: 600px;
  width: 100%;
}
#content {
  top: 25%;
  transition: 0.14s;
}
@media only screen and (min-height: 250px) {
  #content {
    top: 62px;
  }
}
@media only screen and (min-height: 350px) {
  #content {
    top: 87px;
  }
}
@media only screen and (min-height: 450px) {
  #content {
    top: 135px;
  }
}
@media only screen and (min-height: 650px) {
  #content {
    top: 195px;
  }
}
@media only screen and (min-height: 850px) {
  #content {
    top: 255px;
  }
}
.logo {
  font-size: 28px;
  font-weight: bold;
  white-space: normal;
  word-wrap: break-word;
  overflow: auto;
  text-decoration: none;
  color: #1b1b1b;
}
img.smaller {
  height: 72px;
  border-radius: 18px;
  object-fit: cover;
}
span {
  display: block;
  overflow: hidden;
  padding-left: 5px;
  vertical-align: middle;
}
.search_part {
  margin-bottom: 20px;
}
.search.icon {
  color: #1b1b1b;
  width: 12px;
  height: 12px;
  border: solid 2px currentColor;
  border-radius: 100%;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  text-align: center;
  margin: auto;
}
.search.icon:before {
  content: "";
  position: absolute;
  top: 10px;
  left: 3px;
  height: 5px;
  width: 2px;
  background-color: currentColor;
}
.search_bar {
  display: table;
  vertical-align: middle;
  width: 90%;
  max-width: 600px;
  margin: 15px auto 0;
}
#search_input {
  height: 46px;
  padding: 0 12px;
  width: 100%;
  outline: none;
  border: none;
  font-size: 15px;
  background-color: transparent;
}
#search_submit {
  display: none;
  outline: none;
  height: 46px;
  width: 56px;
  float: right;
  font-size: 15px;
  font-weight: bold;
  border: none;
  background-color: transparent;
  padding: 0 10px;
}
.search_bar {
  border: 1px solid rgba(0, 0, 0, 0.24);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0);
}
#search_input,
#search_submit {
  color: #1b1b1b;
}
.bdSug_wpr {
  overflow-y: scroll !important;
  max-height: 30% !important;
  background: rgba(255, 255, 255, 1) !important;
  border: 1px solid !important;
  border-color: rgba(0, 0, 0, 0.15) !important;
  border-radius: 0 0 24px 24px;
}
.bdSug_wpr table {
  background: none !important;
}
.bdSug_wpr td {
  margin: 4px !important;
  padding: 10px !important;
  color: #1b1b1b;
  background: none;
}
.bdSug_sd {
  height: 0px !important;
}
.bdSug_app {
  display: none !important;
}
#bookmark_part {
  text-align: center;
  max-width: 600px;
  background-color: transparent;
  margin: 0 auto;
  padding: 0;
  border-radius: 0px;
}
#box_container {
  text-align: left;
  margin: 0 auto;
  font-size: 0;
}
.box {
  margin: 4px 9px 4px;
  width: 46px;
  border: 0;
  position: relative;
  display: inline-block;
  text-align: center;
}
.box a {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.overlay {
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 23px;
  width: 46px;
  height: 46px;
}
.title {
  border-radius: 23px;
  color: #ffffff;
  width: 46px;
  line-height: 46px;
  height: 46px;
  font-size: 15px;
}
.url {
  margin: 2px 0 0;
  width: 46px;
  height: 20px;
  line-height: 20px;
  white-space: normal;
  word-wrap: break-word;
  overflow: hidden;
  text-overflow: clip;
  -o-text-overflow: clip;
  ms-text-overflow: clip;
  color: #1b1b1b;
  font-size: 10px;
}
@media only screen and (min-width: 128px) {
  #box_container {
    width: 64px;
  }
}
@media only screen and (min-width: 192px) {
  #box_container {
    width: 128px;
  }
}
@media only screen and (min-width: 256px) {
  #box_container {
    width: 192px;
  }
}
@media only screen and (min-width: 320px) {
  #box_container {
    width: 256px;
  }
}
@media only screen and (min-width: 384px) {
  #box_container {
    width: 320px;
  }
}
@media only screen and (min-width: 448px) {
  #box_container {
    width: 384px;
  }
}
@media only screen and (min-width: 512px) {
  #box_container {
    width: 448px;
  }
}
@media only screen and (min-width: 576px) {
  #box_container {
    width: 512px;
  }
}
.sort-ghost {
  opacity: 0.3;
}

更新中...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/423756.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

采用D-K迭代设计不确定对象的鲁棒控制器(μ-controllers)

采用D-K迭代设计不确定对象的鲁棒控制器&#xff0c;将H∞综合(K步)与μ分析(D步)相结合&#xff0c;优化闭环鲁棒性能。 Step 1&#xff1a;利用H∞综合方法找到使标称系统闭环增益最小的控制器。 Step 2&#xff1a;进行鲁棒性分析&#xff0c;以估计闭环系统的鲁棒H∞性能。…

手把手kubernetes本地化部署(含疑难杂症排查解析)

文章目录一、什么是Kubernetes&#xff1f;二、Kubernetes的基本概念PodDeploymentServiceNamespaceConfigMapSecret三、Kuberntes单机本地部署3.1、安装minikube命令行工具3.2、安装docker3.3、启动minikube3.4、使用Dashboard3.5、异常问题解决3.5.1、提示Docker失败3.5.2、d…

迅为瑞芯微RK3568国产化实时操作系统,大容量内存

基于瑞芯微四核 64 位 Cortex-A55 ARMv8 架构处理器 RK3568&#xff0c;主频可达 2.0GHz&#xff0c;CPU 采用 22nm 制程工艺&#xff0c;动态调频调压技术&#xff0c;进一步放大能效比优势。 大容量内存 最大容量支持 8GB 内存&#xff0c;能够有效发挥处理器性能&#xff0…

服装标签二维码,要如何制作?含品牌案例

睡衣上的二维码标签、大衣的洗护说明二维码、衣服上的防伪二维码… 服装行业应用二维码&#xff0c;已经非常常见了。 服装行业中的二维码&#xff0c;不仅帮助品牌更好地展示产品信息、传播品牌影响力&#xff0c;更重要的是&#xff0c;通过这些服装二维码&#xff0c;直接优…

Attention is all your need——Transformer论文

摘要 此序列转录模型仅仅依赖于注意力机制&#xff0c;而不使用循环或者是卷积&#xff0c;将循环全部换成了multi-headed self- attention 介绍 RNN的特点、并行程度低。 Attention在RNN上的应用。 引入注意力机制&#xff0c;提高并行度。 背景 使用卷积对长的序列难以…

数据结构——排序

排序一、排序的概念二、直接插入排序希尔排序三、直接选择排序四、堆排序1、堆的概念2、堆排序五、冒泡排序六、快速排序七、归并排序八、基数排序排序算法的时间复杂度和空间复杂度一、排序的概念 课本概念&#xff08;P165&#xff09; (1&#xff09;内部排序。内部排序指…

一图看懂 pyexcel_io 模块:提供统一 API用来读写操作 Excel 文件的库, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 pyexcel_io 模块&#xff1a;提供统一 API用来读写操作 Excel 文件的库, 资料整理笔记&#xff08;大全&#xff09;摘要模块图类关系图模块全展开【pyexcel_io】统计常量s…

【LeetCode】剑指 Offer 59. 队列的最大值 p288 -- Java Version

1. 题目介绍&#xff08;59. 队列的最大值&#xff09; 面试题59&#xff1a;队列的最大值&#xff0c; 一共分为两小题&#xff1a; 题目一&#xff1a;滑动窗口的最大值题目二&#xff1a;队列的最大值 2. 题目1&#xff1a;滑动窗口的最大值 题目链接&#xff1a;https://l…

3.rabbitmq-集群

1.修改3台的主机名称,也可以不改 vi /etc/hostname 2.配置各个节点的host文件,让各节点都能识别对方 vi /etc/hosts 192.168.3.132 host-rabbitmq 192.168.3.133 host-rabbitmq2 192.168.3.134 host-rabbitmq3 3.以确保各个节点的cookie文件使用的同一个值 在node1上执行远程命…

基于矩阵分解的推荐算法

1.背景 推荐系统的两大应用场景分别是评分预测(Rating Prediction)和Top-N推荐(Item Ranking)。其中评分预测主要用于评价网站&#xff0c;比如用户给自己看过的电影评多少分&#xff0c;或者用户给自己看过的书籍评价多少分&#xff0c;矩阵分解技术主要应用于评分预测问题&am…

买车了

最近先后去试驾了比小鹏P7i、蔚来ET5、智己LS7、亚迪汉这几辆车&#xff0c;这四个品牌总共花了三天时间&#xff0c;也算是比较深度的试驾吧&#xff0c;静态和动态、前后排、主副驾都感受了一下。前面写了比亚迪汉的试驾体验&#xff0c;详细分析了它的优缺点&#xff1a;不愧…

Vue过滤器、自定义指令、组件

目录 一&#xff1a;生命周期 1.1 生命周期实例 1.2 生命周期函数&#xff08;引入&#xff09; 二&#xff1a;过滤器 三&#xff1a;自定义指令 四&#xff1a;组件 4.1 非单文件组件 4.2 组件的嵌套 4.3 单文件组件 模板 4.3.1 架构 4.3.2 不同版本的vue.JS 4…

ASRT语音识别系统部署及模型训练笔记

ASRT语音识别系统部署及模型训练笔记 前言 ASRT是一个中文语音识别系统&#xff0c;由AI柠檬博主开源在GitHub上。 GitHub地址&#xff1a;nl8590687/ASRT_SpeechRecognition 国内Gitee镜像地址&#xff1a;AI柠檬/ASRT_SpeechRecognition 文档地址&#xff1a;ASRT语音识…

ping telnet curl的使用方法和应用场景

文章目录一、区别二、使用方法pingtelnetcurl三、应用场景一、区别 ping命令基于ICMP协议&#xff0c;通过发送发送ICMP数据包&#xff0c;并查看对方是否有返回数据来检测网络是否连通&#xff0c;仅包含控制信息&#xff0c;不包含端口号; telnet是对服务器的远程登录&#…

全网火爆,Python接口自动化测试,从0到1分层封装框架撸码(带接口)

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 随着行业内卷越来越…

3D开发工具HOOPS最新解析合集,助力实现web端高性能模型渲染

一、3D技术为创新提供强大助力 不管您想搭建桌面、WEB或者移动端APP应用&#xff0c;技术领先全球的HOOPS Platform组件都可以为您提供弹性的3D集成架构&#xff0c;同时&#xff0c;一批可信任的工业领域3D技术专家也将为您提供技术支持服务。 如果您的客户期望有一种在多个…

Docker 配置远程访问

Docker客户端通常通过Unix套接字在本地与守护程序通信 /var/run/docker.sock&#xff0c;或通过网络通过TCP套接字。 以下是启动时提供给Docker守护程序的选项的典型示例&#xff1a; # ps -ef |grep dockerd root 23438 1 0 00:41 ? 00:00:03 /usr/bin/dock…

Spring入门案例--IOC入门案例

IOC入门案例思路分析 (1)Spring是使用容器来管理bean对象的&#xff0c;那么管什么? 主要管理项目中所使用到的类对象&#xff0c;比如(Service和Dao) (2)如何将被管理的对象告知IOC容器? 使用配置文件 (3)被管理的对象交给IOC容器&#xff0c;要想从容器中获取对象&…

TCP协议详解

1.TCP的准备条件在古代的时候&#xff0c;古人们经常写书信进行交流&#xff0c;写书信的前提是你要知道这份信是要寄给谁在网络中&#xff0c;我们通过ip端口号找对目标对象&#xff0c;但是现在网站一般会对ip端口注册一个域名&#xff0c;所以我们一般就是对域名进行查找&am…

minikube安装与运行(阿里云环境运行)

说下为啥选择云环境&#xff0c;最开始在本地电脑上安装的minikube&#xff0c;但是由于国内的网络访问不了谷歌的镜像仓库&#xff0c;安装ingress-nginx或者其他插件时着实的恶心。要不翻墙&#xff0c;要不自己搭建个镜像仓库。最终决定用阿里云境外的节点&#xff0c;按小时…