Price: best price
(as of [price_update_date] – Details)
7″ / 18 cm
Batteries : 1 Lithium Ion batteries required. (included)
Product Dimensions : 16.34 x 7.47 x 0.74 cm; 177 Grams
Date First Available : 4 May 2022
Manufacturer : Honor
ASIN : B09X7GR5D4
Country of origin : China
Delivery information:: We cannot deliver certain products outside mainland UK ( Details). We will only be able to confirm if this product can be delivered to your chosen address when you enter your delivery address at checkout.
【Ultra-thin and Lightweight】HONOR X8’s ultra-slim 7.45mm body with flat edges and rounded corners is exceptionally eye-catching, and weighs only 177g
【A Stunning Screen】The ultra-narrow bezel of 6.7″ HONOR FullView Display provides an excellent 93.6% screen-to-body ratio. The front-facing camera is centered for pure symmetry and harmony
【90Hz Screen Refresh Rate】Up to 90Hz refresh rate provides a smooth viewing experience for a silky smooth visual experience. Intelligent adjustment of the screen refresh rate balances performance and power consumption
【Excellent performance+ 2 Years Warranty】Powered by a Snapdragon 680 built on the 6nm process, the HONOR X8 is fast and efficient, we provide two-year warranty and lifetime technical support
【Smart Memory Expansion】The HONOR RAM Turbo technology lifts HONOR X8’s 6GB memory by a whopping 2GB, so you can run more applications smoothly
【More Ways to Capture】The multi functional quad camera allows you to shoot for greatness in every daily scenario. The 64MP main camera takes stunning high-resolution photos. The wide-angle camera expands your field of view
【Wonderful Android 11 Experience】MagicUI 4.2 based on Android 11, with all Google apps and Play Store, bringing you all your favorite apps
/* Formula for determining desired column width */
var calculatedColumnWidth = Math.floor(
($container.innerWidth() - $header.innerWidth()) / VISIBLE_COLUMNS
);
var childWidths = $activeColumn.map(getWidth).get();
var maxChildWidth = Math.max(MIN_WIDTH, Math.max.apply(Math, childWidths));
var minColumnWidth = $columns.innerWidth();
var calculatedPadding = $header.innerWidth() + maxChildWidth;
/* set the min-width of each column to the calulated width or minWidth */ $columns.css(
'min-width',
Math.max(MIN_WIDTH, (calculatedColumnWidth < minColumnWidth
? calculatedColumnWidth
: minColumnWidth))
);
$activeColumn.css('width', maxChildWidth);
/* AUI RTL script automatically changes this to padding-right under RTL context */ $slider.css('padding-left', calculatedPadding);
/* show the component */ $container.removeClass('loading');
})();
/**
* Premium comparison table: top scroll bar
*/ (function() {
/* cache selectors */ var
$header = $('.aplus-v2 .comparison-table #'+comparisonName+' td.attribute'),
$fixedColumn = $('.aplus-v2 .comparison-table #'+comparisonName+' td.active'),
$scrollWrapperTop = $('.aplus-v2 .comparison-table #'+comparisonName+' .scroll-wrapper-top'),
$scrollWrapperBottom = $('.aplus-v2 .comparison-table #'+comparisonName+' .scroll-wrapper-bottom'),
$scrollWidth = $('.aplus-v2 .comparison-table #'+comparisonName+' .scroll-width'),
$scrollBar = $('.aplus-v2 .comparison-table #'+comparisonName+' .scroll-bar');
/* confirm fixed column exists and can add width to the total width of the scroll bar */ var fixedColumnWidth = $fixedColumn.innerWidth();
if ( fixedColumnWidth === null ) {
fixedColumnWidth = 0;
}
/* set width of scrollBar */ $scrollBar.css('width', $scrollWidth.innerWidth() + fixedColumnWidth + $header.innerWidth());
/* connect scrolls together */ $scrollWrapperTop.scroll(function() {
$scrollWrapperBottom.scrollLeft($scrollWrapperTop.scrollLeft());
});
$scrollWrapperBottom.scroll(function() {
$scrollWrapperTop.scrollLeft($scrollWrapperBottom.scrollLeft());
});
})();
}
$('.aplus-v2 .premium-aplus-module-5 .table-container').each(function(index, module) {
initCompTable(module);
});
});
}
});
});
}));
function showCarouselText(oldIndex, newIndex) {
var oldClass = MODULE_CLASS_NAME + " " + TEXT_CONTAINER_CLASS_NAME + "-" + oldIndex;
var newClass= MODULE_CLASS_NAME + " " + TEXT_CONTAINER_CLASS_NAME + "-" + newIndex;
$(oldClass).addClass(TEXT_CONTAINER_HIDDEN);
$(newClass).removeClass(TEXT_CONTAINER_HIDDEN);
}
/**
* Creates a CarouselButton class for provided carousel instance
* @param {object} carousel - AUI Carousel instance
* @returns {Class} - CarouselButton Class
*/ function CarouselButtonTemplate(carousel) {
/**
* Button for controlling the active slide
* @constructor
* @param {number} index - slide index
* @param {DOMElement} [elem] - optional DOM element to use as this objects DOM representation
*/ function CarouselButton(index, elem) {
var self = this;
this.index = index;
this.carousel = carousel;
/* create the button element */ this.elem = this.getElem(elem);
this.$elem = $(this.elem); /* store jquery version */ this.elem.addEventListener('click', self.handleClick.bind(self));
/* add this object to the object manager */ CarouselButton.objects.byId[index] = this;
CarouselButton.objects.all.push(this);
}
/**
* Describe behavior for click events on this.elem
* @memberOf CarouselButton
*/ CarouselButton.prototype.handleClick = function(e) {
e.preventDefault();
this.carousel.gotoPage(this.index);
};
/**
* Enter active state
* @memberOf CarouselButton
*/ CarouselButton.prototype.activate = function() {
this.$elem.addClass(GOTO_BTN_ACTIVE_CLASS_NAME);
};
/**
* Enter inactive state
* @memberOf CarouselButton
*/ CarouselButton.prototype.deactivate = function() {
this.$elem.removeClass(GOTO_BTN_ACTIVE_CLASS_NAME);
};
/**
* Returns an existing or creates a new bound element for this object
* @memberOf CarouselButton
* @param {DOMElement} [elem] - optionally provide an existing element in the DOM to use
* @returns {DOMElement} - this objects DOM representation
*/ CarouselButton.prototype.getElem = function(elem) {
if (this.elem) return this.elem;
if (elem) return elem;
var createdElem = document.createElement('span');
createdElem.className = GOTO_BTN_CLASS_NAME;
return createdElem;
};
/** @const Object manager */ CarouselButton.objects = {
byId: {},
all: [],
};
return CarouselButton;
}
framework.onInit(CAROUSEL_NAME, function(carousel) {
/** @const {Class} */ var CarouselButton = CarouselButtonTemplate(carousel);
/* create carouel controls */ var $carouselBtns = $(safeClassSelector(GOTO_BTN_CLASS_NAME));
var btns = $carouselBtns.map(function(i, btnElem) {
return new CarouselButton(i + 1, btnElem);
});
/* activate first one */ CarouselButton.objects.byId[1].activate();
/* Listen to slide changes */ A.on("a:carousel:" + CAROUSEL_NAME + ":change:pageNumber", function (data) {
CarouselButton.objects.byId[data.newValue].activate();
CarouselButton.objects.byId[data.oldValue].deactivate();
showCarouselText(data.oldValue, data.newValue);
});
});
/**
* @returns {string} - css classname prefixed with module selector
*/ function safeClassSelector(className) {
return '.' + MODULE_CLASS_NAME + ' .' + className;
}
}
$('.aplus-v2 .premium-aplus-module-12 .aplus-carousel-container').each(function (index, module) {
initiateCarousel(module);
});
framework.createAll();
framework.initializeAll();
});
}
})
});
}));