组成内容:
51
Accordion Items Article Selection Author Info Basic Carousel Basic Hero Basic Map Blog Pull Out Contact Content Accordion Content Carousel Content Image Cta Cta Bar Cta Blocks Cta Collage Event Content Events Grid Example Find Firm Firm Search Firms By Town Gated Content Download Guides Carousel Hero History Homepage Hero Image Content Cta Image List Content 行业 Job Content Job Listings Local Firm Carousel Our Firms Pages Carousel Partners Partners Slider People Listing Post Carousel Post Feed Pullquote Section Wrap Service List Split Content Stats Tax Guides Team Grid Title Logos Two Column Video Video Carousel Video Old

行业

View example
Industry

行业

行业

了解更多
There are no ACF fields assigned to this component.

				
@import "../../resources/scss/util/variables";
@import "../../resources/scss/util/mixins";

.block-industries {
	&__wrapper {
		min-height: rem-calc(640);

		@include bp($lg) {
			height: rem-calc(900);
		}

		.swiper-container {
			position: relative;
			height: 100%;
		}


		.swiper-wrapper {
			box-sizing: border-box;

			> * {
				box-sizing: border-box;
			}
		}

		.swiper-slide {
			position: relative;
			height: auto;

			.block-industries__slide .block-industries__slide-content{
				visibility: hidden; //Added to fix TranslatePress translating slides not shown
			}

			&.swiper-slide-active {
				.block-industries__slide .block-industries__slide-content{
					visibility: visible; //Added to fix TranslatePress translating slides not shown
				}
			}
			// &__inner {
			// 	min-height: rem-calc(232);
			// 	position: relative;
			// 	z-index: 1;

			// 	@include bp($lg, true) {
			// 		min-height: rem-calc(700);
			// 	}
			// }

			img {
				object-fit: cover;
			}
		}

		@include slider-navigation;

		.slider-navigation {
			height: rem-calc(47);
			display: flex;
			bottom: rem-calc(90);
			z-index: 20;
			padding: 0;
			overflow-x: hidden;
			position: absolute;
			top: rem-calc(76);
			left: 0;
			border: none;
			justify-content: flex-start;
			width: calc(100% - 30px);
			margin: 0;
			margin-left: rem-calc(15);
			margin-right: rem-calc(15);

			@include bp($lg) {
				top: auto;
				left: auto;
				position: relative;
				border-bottom: 1px solid rgba(106, 106, 106, 1);
				border-top: 1px solid rgba(106, 106, 106, 1);
				border-left: 1px solid rgba(106, 106, 106, 1);
				transform: none;
				justify-content: flex-end;
				width: 90%;
				left: 0;
				margin: 0 auto;
			}

			.slider-button {
				display: none;

				@include bp($lg) {
					height: rem-calc(45);
					width: rem-calc(45);
					padding: 0;
					display: flex;
					align-items: center;
					justify-content: center;
					&:hover {
						background-color: $primary-blue;
					}
				}
			}

			.slider-pagination {
				width: 100%;
				gap: rem-calc(43);
				backdrop-filter: none;
				overflow-x: scroll;
				overflow-y: hidden;
				z-index: 25;
				padding-left: 1rem;
				padding-right: 1rem;

				@include bp($lg) {
					padding-left: rem-calc(20);
					backdrop-filter: blur(18px);
					padding-right: rem-calc(20);
				}

				.swiper-pagination-bullet {
					width: min-content;
					white-space: nowrap;
					height: auto;
					text-transform: uppercase;
					background: none;
					border-radius: 0;
					color: $white;
					font-weight: 400;
					opacity: 1;

					@include bp($lg) {
						font-weight: 300;
					}


					&-active {
						font-weight: 700;
					}
				}
			}
		}
	}

	&__slide {
		position: relative;
		height: 100%;
		padding-top: 1rem;
		padding-left: rem-calc(12);
		padding-right: rem-calc(12);
		padding-bottom: rem-calc(15);

		@include bp($lg) {
			padding-top: rem-calc(43);
			padding-left: 0;
			padding-right: 0;
		}

		&:before {
			content: "";
			position: absolute;
			display: block;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			z-index: 1;
			background-color: rgba(0, 0, 0, 0.6);
		}

		&-content {
			border-top: 1px solid rgba(106, 106, 106, 1);
			border-left: 1px solid rgba(106, 106, 106, 1);
			border-right: 1px solid rgba(106, 106, 106, 1);
			border-bottom: 1px solid rgba(106, 106, 106, 1);
			width: 100%;
			margin: 0 auto;
			padding: 0;
			z-index: 10;
			position: relative;
			top: 0;
			display: grid;
			grid-template-columns: 1fr auto;
			justify-content: space-between;
			align-content: space-between;
			height: 100%;

			@include bp($lg) {
				width: 90%;
				height: 100%;
				align-content: normal;
				max-height: rem-calc(775);
				border-bottom: none;
			}

			&-intro {
				border-bottom: 1px solid rgba(106, 106, 106, 1);
				padding: rem-calc(14) rem-calc(24);
				grid-column: span 2;
				p {
					font-weight: 500;
					font-size: 16px;
					line-height: 20px;
					letter-spacing: 5%;
					color: $white;
					text-transform: uppercase;
					margin: 0;
					padding: 0;
				}
			}

			&-inner {
				padding: rem-calc(70) rem-calc(50) rem-calc(80) 1rem;
				height: 100%;
				box-sizing: border-box;
				grid-column: span 2;

				@include bp($xl) {
					max-width: 510px;
				}

				@include bp($lg) {
					grid-column: span 1;
					padding: 2rem rem-calc(49);
				}


				.industry-title {
					font-weight: 400;
					@include fluid-type(28, 56);
					letter-spacing: 0%;
					color: $white;
					margin: 0;
					padding: 0;
				}

				.industry-description {
					color: $white;
					font-weight: 400;
					width: 100%;
					padding: rem-calc(24 0 0);
					margin-bottom: 0;
				}

				.industry-link {
					margin-top: rem-calc(33);
					&.btn--hollow {
						border-color: $white;
						color: $white;
						background: none;

						&:focus {
							color: $white;
						}

						&:before {
							display: none;
						}

						&:hover {
							background-color: $prussian-blue;
						}
					}
				}
			}

			&-posts {
				max-height: rem-calc(704);
				// top: rem-calc(49);
				// right: 0;
				max-width: 100%;
				backdrop-filter: blur(18px);
				box-sizing: border-box;
				border-left: 1px solid rgba(255, 255, 255, 0.1);
				color: $white;
				overflow-x: scroll;
				overflow-y: auto;
				border-bottom: 1px solid rgba(106, 106, 106, 1);
				padding: rem-calc(24 0 24 20);
				margin-bottom: 0;
				grid-column: span 2;

				@include bp($lg) {
					grid-column: span 1;
					max-width: rem-calc(463);
					overflow-x: visible;
					overflow-y: visible;
					margin-bottom: rem-calc(45);
					padding: rem-calc(39) rem-calc(25);
					border-bottom: none;
					max-height: 100%;
					min-width: rem-calc(463);
					height: 100%;
				}

				&-inner-items {
					display: flex;
					flex-direction: row;
					overflow-x: scroll;
					gap: rem-calc(18);

					@include bp($lg) {
						overflow-x: visible;
						flex-direction: column;
						overflow-y: scroll;
					}
				}

				&-inner {
					width: 100%;
					display: flex;
					flex-direction: row;

					@include bp($lg) {
						flex-direction: column;
						width: auto;
					}
				}

				&-title {
					display: none;
					color: $white;
					text-transform: uppercase;
					font-weight: 500;
					font-size: rem-calc(20);
					line-height: rem-calc(20);
					letter-spacing: 5%;
					margin: 0;
					padding: 0;
					justify-content: space-between;
					align-items: flex-start;
					margin-bottom: rem-calc(20);

					@include bp($lg) {
						display: flex;
						margin-bottom: rem-calc(40);
					}


					a {
						color: $white;
						font-weight: 400;
						font-size: rem-calc(16);
						line-height: rem-calc(19.5);
						text-decoration: none;
						border-bottom: 1px solid rgba(0, 174, 239, 1);
						padding-bottom: rem-calc(5);
						transition: color 0.3s ease-in-out;

						&:hover {
							color: rgba(0, 174, 239, 1);
						}
					}
				}
				&-inner {
					&-item {
						display: flex;
						flex-direction: row;
						justify-content: flex-start;
						align-items: flex-start;
						gap: rem-calc(18);
						text-decoration: none;
						min-width: rem-calc(320);
						padding-top: 0;
						border-bottom: none;
						padding-right: 8px;

						@include bp($lg) {
							padding-top: rem-calc(26);
							border-bottom: 1px solid rgba(255, 255, 255, 0.2);
							padding-bottom: rem-calc(26);
							padding-right: 0;
						}

						&:hover {
							.block-industries__slide-content-posts-inner-item-title {
								color: $primary-blue;
							}
						}

						&-image {
							flex: 1 0 auto;

							img {
								float: left;
							}
						}
						&-info {
							display: flex;
							flex-direction: column;
							justify-content: flex-start;
							align-items: flex-start;
							width: 100%;
							overflow: hidden;
						}
						&-category {
							font-weight: 600;
							font-size: rem-calc(10);
							line-height: rem-calc(14);
							letter-spacing: 5%;
							color: $white;
							margin: 0;
							padding: 0;
							text-transform: uppercase;
							position: relative;
							text-indent: rem-calc(10);
							margin-bottom: rem-calc(8);
							white-space: nowrap;
							overflow: hidden;
							display: inline-block;
							width: 100%;
							text-overflow: ellipsis;

							&:before {
								content: "";
								display: block;
								width: rem-calc(5);
								height: rem-calc(5);
								background: rgba(182, 230, 53, 1);
								top:50%;
								transform: translateY(-50%);
								border-radius: 50%;
								position: absolute;
								left: 0;
							}
						}
						&-title {
							font-weight: 500;
							font-size: rem-calc(16);
							line-height: rem-calc(21);
							color: $white;
							margin: 0;
							padding: 0;
							margin-bottom: rem-calc(12);
							transition: color 0.3s ease-in-out;
						}
						&-date {
							font-weight: 300;
							font-size: rem-calc(14);
							line-height: rem-calc(17);
							color: $white;
							margin: 0;
							padding: 0;
						}

						&:first-of-type {
							padding-top: 0;
						}
						&:last-of-type {
							padding-bottom: 0;
							border-bottom: none;
						}
					}
				}
			}
		}

		// &-image {
		// 	width: 100%;
		// 	margin-bottom: rem-calc(24);

		// 	picture {
		// 		width: 100%;
		// 	}
		// }
	}
}
class Industries {
    block;

	constructor(block) {
		this.block = block;
		this.init();
	}

	init() {

		this.paginationElem = this.block.querySelector('.slider-pagination');
		this.swiperElem = this.block.querySelector('.swiper-container');
		this.prevBtnElem = this.block.querySelector('.slider-button--prev');
		this.nextBtnElem = this.block.querySelector('.slider-button--next');
		this.industryTitlesElem = this.block.querySelector('.industry-titles');
		this.industryTitles = JSON.parse(this.industryTitlesElem.dataset.industryTitles);

		this.swiper = new Swiper(this.swiperElem, {
			pagination: {
				el: this.paginationElem,
				clickable: true,
				renderBullet: (index, className) => {
				  return '
' + this.industryTitles[index] + "
"; } }, navigation: { nextEl: this.nextBtnElem, prevEl: this.prevBtnElem }, slidesPerView: 1, effect: 'fade', // Add this line to enable fade effect fadeEffect: { // Optional: Customize fade effect crossFade: true }, speed: 1000, // loop: true, // autoplay: { // delay: 3000, // disableOnInteraction: false, // }, // breakpoints: { // 541: { // slidesPerView: 2.5, // }, // 1025: { // slidesPerView: 3.5 // }, // 1200: { // slidesPerView: 4.5 // }, // }, on: { slideChange: function () { // Add active class to current nav item const currentIndex = this.activeIndex; const currentNavItem = document.querySelector(`.swiper-pagination-bullet:nth-child(${currentIndex + 1})`); if (currentNavItem) { currentNavItem.classList.add('active'); // Get the navigation container const navContainer = currentNavItem.parentElement; // Calculate scroll position to center the active item const scrollLeft = currentNavItem.offsetLeft - (navContainer.offsetWidth / 2) + (currentNavItem.offsetWidth / 2); // Smooth scroll to the position navContainer.scrollTo({ left: scrollLeft, behavior: 'smooth' }); } } } }); // Add click handlers to nav items document.querySelectorAll('.nav-item').forEach(item => { item.addEventListener('click', () => { const slideIndex = parseInt(item.dataset.slide); this.swiper.slideTo(slideIndex); }); }); } } document.addEventListener('DOMContentLoaded', () => { document.querySelectorAll('.block-industries').forEach((block) => { new Industries(block); }) });
{
    "$schema": "https://schemas.wp.org/trunk/block.json",
    "apiVersion": 2,
    "name": "strategiq/industries",
    "title": "Industries",
    "description": "A list of industries",
    "category": "strategiq",
    "icon": "strategiq",
    "acf": {
        "mode": "preview",
        "renderTemplate": "block-industries.php"
    },
    "supports": {
        "anchor": true,
        "align": false,
        "color": {
            "background": false,
            "text": false,
            "gradients": false
        },
        "spacing": {
            "padding": [
                "top",
                "bottom"
            ],
            "margin": [
                "top",
                "bottom"
            ]
        }
    },
    "example": {
        "attributes": {
            "mode": "preview",
            "data": {
                "heading_type": "h2",
                "heading_text": "Industries",
                "content": "This is some example content to represent what the content will look like"
            }
        }
    },
    "style": ["file:../../assets/css/industries/block-industries.css", "swiper-css"],
    "viewScript": ["swiper-js", "industries"]
}
Page Title
Page Type
Page URL
There are is no readme file with this component.