按钮位于左下角,当我转到网站上有目录(左侧)的页面时,按钮在视觉上消失但仍然有效。该按钮几乎只是更改我网站中某些文本的颜色。
正如您所看到的,图标没有显示,我的目录很长,并且可以在页面左侧滚动。
这是我的一些代码:
HTML:
<button class="bottom-left-btn star-button"><i class="far fa-star"></i></button>
CSS:
.bottom-left-btn {
bottom: 5px;
left: 5px;
background-color: transparent;
color: var(--clr-text);
font-size: 16px;
border: none;
cursor: pointer;
z-index: 10000;
display: block;
position: fixed;
}
.toc {
padding-left: 10%;
z-index: 1; /* Ensure TOC has a lower z-index */
position: relative; /* Ensure positioning context */
ul {
margin-bottom: 0; /* Remove bottom margin from nested sublists */
}
}
JS:
document.addEventListener("DOMContentLoaded", function () {
const starButtons = document.querySelectorAll('button.star-button');
// Initialize jscolor picker
let picker = null;
jscolor.presets.default = {
width: 200,
position: 'right',
backgroundColor: '#333',
controlBorderColor: '#FFF',
shadow: true,
borderRadius: 6,
borderWidth: 1,
borderColor: '#444',
previewElement: null,
palette: [
'#7092be', '#4040bf', '#ab548a', '#bf404c', '#b5a940', '#3fa687'
],
};
// Get the saved color from localStorage or set a default lightness
const savedColor = localStorage.getItem('selectedColor');
const cssHsl = getCssHsl('--clr-a-text');
const initialHsl = savedColor ? JSON.parse(savedColor) : { ...cssHsl, l: 50 }; // Default lightness to 50%
const hexColor = savedColor ? hslToHex(initialHsl.h, initialHsl.s, initialHsl.l) : hslToHex(cssHsl.h, cssHsl.s, 50); // Use CSS hue and saturation, default lightness to 50%
function showColorPicker(e) {
e.preventDefault();
e.stopPropagation();
const target = e.currentTarget.querySelector('i');
if (!picker) {
picker = new jscolor(target, {
onInput: 'updateColor(this)',
valueElement: null, // This ensures that the color value is not applied to the button itself
previewElement: null, // No preview element
value: hexColor // Set the initial color
});
}
if (picker) picker.show();
}
if (starButtons.length > 0) {
starButtons.forEach(button => {
button.addEventListener('click', showColorPicker);
button.addEventListener('touchstart', showColorPicker); // Add touchstart event listener for mobile
const greenPart = button.querySelector('.green-part');
if (greenPart) {
greenPart.addEventListener('click', handleGreenPartClick);
greenPart.addEventListener('touchstart', handleGreenPartClick); // Add touchstart event listener for mobile
}
console.log('Star button event listener added');
});
} else {
console.log('No star buttons found');
}
function handleGreenPartClick(e) {
e.preventDefault();
e.stopPropagation();
alert('Green part clicked!');
}
// Apply the saved color on page load
if (savedColor) {
const hslColor = JSON.parse(savedColor);
applyColor(hslColor);
console.log('Applied saved color:', hslColor);
}
});
function updateColor(picker) {
const hexColor = picker.toHEXString();
const hslColor = hexToHSL(hexColor);
console.log('New color selected: ', hslColor);
applyColor(hslColor);
// Save the selected color to localStorage
localStorage.setItem('selectedColor', JSON.stringify(hslColor));
}
function applyColor(hslColor) {
document.documentElement.style.setProperty('--clr-a-text', `hsl(${hslColor.h}, ${hslColor.s}%, var(--L-a-text))`);
document.documentElement.style.setProperty('--clr-a-text-hvr', `hsl(${hslColor.h}, ${hslColor.s}%, calc(var(--L-a-text) * var(--L-a-text-hover-change)))`);
}
function hexToHSL(hex) {
}
function hslToHex(h, s, l) {
}
function getCssHsl(variable) {
const style = getComputedStyle(document.documentElement);
const value = style.getPropertyValue(variable);
const hsl = value.match(/\d+/g).map(Number);
return { h: hsl[0], s: hsl[1], l: hsl[2] };
}
您在
.link-wrapper
下制作了整个 display: none;
960px
,因此它的子项 .bottom-left-btn
也将被隐藏:
替换这个:
@media print, screen and (max-width: 960px) {
.link-wrapper {
display: none !important;
}
}
这样:
@media print, screen and (max-width: 960px) {
.link-wrapper .link, .link-wrapper .link, .link-wrapper .theme-switch, .link-wrapper h4, .link-wrapper .toc{
display: none !important;
}
}